我已经看过几次这个问题了,但建议的答案似乎并不适合我。我带了一个带有read_csv的csv,并试图清理这些名字,最初是:
In [89]: data.columns
Out[89]:
Index(['Node Number', 'X [ m ]', 'Y [ m ]', 'Z [ m ]',
'Turbulence Kinetic Energy [ m^2 s^-2 ]', 'turbulenceIntensity',
'Velocity u [ m s^-1 ]', 'Velocity v [ m s^-1 ]',
'Velocity w [ m s^-1 ]', 'windspeedratio'],
dtype='object')
我发现的最简单的建议应该是:
data.rename(columns=lambda x: x.strip(), inplace=True)
但如果我尝试,那绝对没有变化。与
相同data.columns = data.columns.str.strip()
知道为什么吗?
答案 0 :(得分:3)
好像您需要replace
所有' '
到''
df.columns.str.replace(' ','')
Out[103]:
Index(['NodeNumber', 'X[m]', 'Y[m]', 'Z[m]',
'TurbulenceKineticEnergy[m^2s^-2]', 'turbulenceIntensity',
'Velocityu[ms^-1]', 'Velocityv[ms^-1]', 'Velocityw[ms^-1]',
'windspeedratio'],
dtype='object')
答案 1 :(得分:-1)
Strip仅删除前导和尾随空格。如果你想删除所有空格(包括各种白色空格,如标签,换行符,空格等),以下内容将起作用
import string
def remove_whitespace(x):
table = {ord(char): None for char in string.whitespace}
return x.translate(table)
data.rename(columns=remove_whitespace, inplace=True)
正如布拉德所提到的,以下内容可以用于同样的效果。
df.columns.str.replace(r'\s+', '')