首页 > 解决方案 > 数据框用空白替换下划线不起作用

问题描述

我正在努力弄清楚为什么这个替换不起作用

输入列值

“全球多部门收入综合 (fka GITR) (USD) BWC_GMSI”

预期产出

“全球多部门收入综合 (fka GITR) (USD) BWCGMSI”

代码

import pandas as pd

d = {'col1': ["Dummy", "Global Multi-Sector Income Composite(fka GITR) (USD) BWC_GMSI"], 'col2': ["dummy 3", "dummy4"]}
df = pd.DataFrame(data=d)

df2 = df.replace("_", "")

结果没有改变......

请有任何想法

标签: pythondataframereplace

解决方案


你需要regex=True

>>> df2 = df.replace(r"_", "", regex=True)

否则,Pandas 将搜索精确匹配,其中单元格的全部内容都是一个下划线。

例子:

>>> d = {'col1': ["Dummy", "A_B__C_D"],
...      'col2': ["Dummy", "ABCD_"],
...      'col3': ["_", "_*_"]
...     }
>>> df = pd.DataFrame(data=d)
>>> df.replace(r"_", "", regex=True)
    col1   col2 col3
0  Dummy  Dummy     
1   ABCD   ABCD    *

推荐阅读