2017-03-12 7 views

答えて

2

は、私はより良いだけの列urlapply作品であれば省略している、あなたが戻って出力を割り当てる必要があると思う:

df = pd.DataFrame({'url': ['www.CNN.com', 'www.Nbc.com', 'www.BBc.com', 'www.fOX.com'], 
        'var1': ['XSD', 'wer', 'xyz', 'zyx']}) 

print (df) 
      url var1 
0 www.CNN.com XSD 
1 www.Nbc.com wer 
2 www.BBc.com xyz 
3 www.fOX.com zyx 

#if types of column is str, astype is not necessary 
df.url = df.url.astype(str).str.lower() 
print (df) 
      url var1 
0 www.cnn.com XSD 
1 www.nbc.com wer 
2 www.bbc.com xyz 
3 www.fox.com zyx 

しかしlowercase string秒にdfのすべての列を変換する必要がある場合:

df = df.astype(str).apply(lambda x: x.str.lower()) 
print (df) 
      url var1 
0 www.cnn.com xsd 
1 www.nbc.com wer 
2 www.bbc.com xyz 
3 www.fox.com zyx 
+0

最初の解決策は、エラー//anaconda/lib/python3.5/site-packages/pandas/core/generic.py:2701:SettingWithCopyWarning: を生成しました。値がスライスのコピーに設定しようとしていますDataFrameから取得します。 代わりに.loc [row_indexer、col_indexer] = valueを使用してみてください ドキュメントの注意点を参照してください:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy 自己[name] = value' 2番目の解決策はありますが –

+0

私は問題がこの行の上のコードにあると思いますが、上記の2,3行を共有できますか? – jezrael

+0

[docs](http://pandas.pydata.org/pandas-docs/stable/indexing.html#returning-a-view-verscopy) – jezrael

4
df['url'] = df['url'].str.lower() 

はシリーズで動作し、小文字のバージョンに置き換える必要があります。

+1

にエラーがあります。//anaconda/lib/python3.5/site-packages/ipykernel/__main__.py:3:SettingWithCopyWarning: 値がDataFrameからスライスのコピーに設定しようとしています。 代わりに.loc [row_indexer、col_indexer] = valueを使用してみてください ドキュメントの注意点を参照してください:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy app.launch_new_instance() ' –

+0

@FeyziBagirov私は自分のミラーリングしようとした私のテストデータセット(これもまたPython 3.5)にはありませんでした。同じ入力を持つようにデータセットを生成するための質問にコードを投稿できますか? – David

+0

@FeyziBagirovあなたは 'df ['url'] = df.loc [:、 'url']。str.lower()'を試してもよいでしょう。 –

関連する問題