Ich glaube, Sie Ausgabe zurück zuweisen müssen, besser weglassen ist apply
wenn Arbeiten nur mit Spalte url
:
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
Aber wenn müssen alle Spalten von df
zu lowercase string
s konvertieren:
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
Die erste Lösung generierte einen Fehler '//anaconda/lib/python3.5/site-packages/pandas/core/generic.py:2701: SettingWithCopyWarning: Ein Wert versucht, auf einer Kopie eines Segments festgelegt werden von einem DataFrame. Versuchen Sie mit .loc [row_indexer, col_indexer] = Wert stattdessen Siehe die Einschränkungen in der Dokumentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self [Name] = Wert' Die zweite Lösung funktioniert obwohl –
Ich denke, das Problem ist in Code über dieser Zeile, können Sie 2,3 Reihen oben teilen? – jezrael
Oder überprüfen Sie [Docs] (http://pandas.pydata.org/pandas-docs/stable/indexing.html#returning-a-view-versus-a-copy) – jezrael