一个快速提问的人,我有一个熊猫数据框:
In [11]: df = pd.DataFrame([['A', 'B'], ['C', E], ['D', 'C']],columns=['X', 'Y', 'Z'])
In [12]: df
Out[12]:
X Y Z
0 A B D
1 C E C
如何转换为降低df
的所有元素:
Out[12]:
X Y Z
0 a b d
1 c e c
我查看了documentation并尝试了以下内容:
df = [[col.lower() for col in [df["X"],df["Y"], df["Z"]]]]
df
然而,它不起作用。如何降低pandas数据框中的所有元素?。
答案 0 :(得分:17)
无论
df.applymap(str.lower)
Out:
X Y Z
0 a b d
1 c e c
或者
df.apply(lambda col: col.str.lower())
Out:
X Y Z
0 a b d
1 c e c
第一个更快,看起来更好,但第二个可以处理NaN。
答案 1 :(得分:0)
即使在df包含NaN值和String的情况下,也可以在lambda中使用applymap
import pandas as pd
df = df.applymap(lambda x: x.lower() if pd.notnull(x) else x)