如何降低pandas数据帧中的所有元素?

时间:2016-10-28 19:37:43

标签: python python-3.x pandas

一个快速提问的人,我有一个熊猫数据框:

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数据框中的所有元素?。

2 个答案:

答案 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)