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)
我有一个数据框,其中某些单元格(在几列中)中包含的数字如下所示:'$$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)