我正在处理一个问题集,其中我们在pandas数据框中有很多列,其中许多列都有尾随空格。我的问题是,是否有更好的方法来删除这些空格,而不是创建一个动态字符串(我们将列名作为变量传递给它并附加strip()
),然后为每一列执行它。
答案 0 :(得分:1)
如果没有一个例子,就不能完全清楚你想要完成什么,但也许以下内容会有所帮助:
import pandas as pd
df = pd.DataFrame({'A ': [1, 2], 'B ': [4, 5], 'C': [8,9]})
列标题确实有尾随空格:
df.columns
Index([u'A ', u'B ', u'C'], dtype='object')
现在您可以使用map
和strip
来摆脱它们:
df.columns = df.columns.map(lambda x: x.strip())
或者
df.columns = df.columns.map(str.strip)
或简单(也可能是最快的解决方案)
df.columns = df.columns.str.strip()
如果你现在打电话
df.columns
它产生
Index([u'A', u'B', u'C'], dtype='object')
如果是关于值而不是标题,您还可以使用applymap
:
df = pd.DataFrame({'A': ['1', '2 '], 'B': ['4 ', '5 '], 'C': ['8 ','9']})
A B C
0 1 4 8
1 2 5 9
然后以下消除了尾随的空格:
df.applymap(lambda x: x.strip())
或者
df.applymap(str.strip)
A B C
0 1 4 8
1 2 5 9
注意:这假定您的列中只有字符串。您还可以查看this link。