Pandas:从不同列的元素中替换字符串的一部分

Pandas: replacing part of a string from elements in different columns

我有一个数据框,其中某些单元格(在几列中)中包含的数字如下所示:'$$10'

我想 replace/remove '$$'。到目前为止我试过了,但我没有用:

replace_char={'$$':''}

df.replace(replace_char, inplace=True) 

您的代码(几乎)是正确的。 如果你有 AA,这将有效:

replace_char={'AA':''}
df.replace(replace_char, inplace=True) 

问题是 $$ 是正则表达式,因此您需要以不同的方式进行处理:

df['your_column'].replace({'$':''}, regex = True)

示例:

df = pd.DataFrame({"A":[1,2,3,4,5,'$'],"B":[9,9,'$',9,9, np.nan]})


    A   B
0   1   9
1   2   9
2   3   $
3   4   9
4   5   9
5   $ NaN

df['A'].replace({'$':''}, regex = True)

A 列的期望结果:

0    1
1    2
2    3
3    4
4    5
5    6

您可以从这一点迭代到任何列。

您只需指定正则表达式参数。喜欢:

replace_char={'$$':''}

df.replace(replace_char, in place = True, regex = True) 

'df.replace' 应将其替换为数据框中的所有条目。

一个接近您所采用方法的示例是:

df[col_name].str.replace('$$', '')

请注意,这必须在一个系列上完成,因此您必须 select 您想要应用替换的列。

    amt
0  $
1  $

df['amt'] = df['amt'].str.replace('$$', '')
df

给出:

  amt
0  12
1  34

或者您可以通过以下方式申请完整的 df:

df.replace({'$$':''}, regex=True)