为什么我在python中使用apply map函数来替换标题名称中不需要的字符时会出错?
我的DF标题(名称)包含:
Day % Change $ Opening_Price $ Close_Price
我想要的是:
Day Change Opening_Price Close_Price
这是名字中的%符号和$符号。
我在尝试什么:
DF = DF.applymap(lambda x: x if not '$' in str(x) else x.replace('$', ''))
DF = DF.applymap(lambda x: x if not '%' in str(x) else x.replace('%', ''))
但上面给了我一个错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe3' in position 10: ordinal not in range(128)
答案 0 :(得分:2)
我认为您可以使用str.replace
,然后在必要时按strip
删除开始和结束空白:
df.columns = df.columns.str.replace('[$%]', '').str.strip()
print (df)
Empty DataFrame
Columns: [Day % Change, $ Opening_Price, $ Close_Price]
Index: []
df.columns = df.columns.str.replace('[$%]', '').str.strip()
print (df)
Empty DataFrame
Columns: [Day Change, Opening_Price, Close_Price]
Index: []