在pandas
库中,可以使用DataFrame
对象的replace()
方法来替换字符串。这个方法允许通过指定一个要替换的值和一个替换值来替换DataFrame
中的元素。
1: 替换单个值
import pandas as pd
df = pd.DataFrame({
'A': ['foo', 'bar', 'baz', 'foo'],
'B': ['one', 'one', 'two', 'three'],
'C': ['small', 'large', 'large', 'small'],
'D': [1, 2, 3, 4]
})
# 替换单个字符串
df_replaced = df.replace('foo', 'new_value')
print(df_replaced)
输出中所有的'foo'
字符串都被替换成了'new_value'
A B C D
0 new_value one small 1
1 bar one large 2
2 baz two large 3
3 new_value three small 4
2: 替换多个值
# 替换多个字符串
df_multi_replaced = df.replace({'foo': 'new_foo', 'bar': 'new_bar'})
print(df_multi_replaced)
输出中'foo'
被替换成了'new_foo'
,'bar'
被替换成了'new_bar'
A B C D
0 new_foo one small 1
1 new_bar one large 2
2 baz two large 3
3 new_foo three small 4
3: 使用正则表达式替换
# 使用正则表达式替换
df_regex_replaced = df.replace(to_replace=r'^ba.', value='new_prefix', regex=True)
print(df_regex_replaced)
输出中正则表达式r'^ba.'
匹配以'ba'
开头并跟随任意字符的字符串。所有匹配该模式的字符串都将被替换为'new_prefix'
A B C D
0 foo one small 1
1 new_prefix one large 2
2 new_prefix two large 3
3 foo three small 4
注:replace()
方法默认会返回一个新的DataFrame
,原始DataFrame
不会被修改。如果想修改原DataFrame
,可以将inplace=True
作为replace()
方法的参数传入。
df.replace('foo', 'new_value', inplace=True)