python - 为什么在 python 中使用 apply map 函数替换 header 名称中不需要的字符时出现错误

标签 python pandas

为什么在 python 中使用 apply map 函数替换 header 名称中不需要的字符时出现错误?

我的 DF header (名称)包含:

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)

最佳答案

我认为你可以使用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: []

关于python - 为什么在 python 中使用 apply map 函数替换 header 名称中不需要的字符时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42415829/

相关文章:

python - for 循环在 Python 中生成/导出输出的时间太长

python - 如何在 presto 中将列转换为行?

python - 如果存在特定模式(例如数字然后字母),如何将数据透视表应用于数据框列?

python - 显示列值的散点图标题

python - 为什么更改 .format 中的变量后,字符串格式的全局变量仍保持不变?

python - 处理缩写的通用解决方案

python - Kivy:覆盖子类中的属性

python - 为什么我无法创建一个列是两个 float 列表的 DataFrame?

python - 在 python/pyspark 中获取 k-means 质心和异常值

python - Django 告诉最后一个项目是否具有双重排序中的某些属性(order_by)