替换一系列熊猫中的值[重复]

Posted

技术标签:

【中文标题】替换一系列熊猫中的值[重复]【英文标题】:Replace values in a series pandas [duplicate] 【发布时间】:2019-02-05 20:15:45 【问题描述】:

当我想替换一个值时,我必须使用这个代码块:

data['Organization'].str.replace('Greece','Rome')

为什么我不能用这个:

data['Organization'].replace('Greece','Rome').

我以前见过其他人使用方法二而没有传递字符串方法。 我的问题是我可以使用替换函数传递一个系列方法吗?代码行是什么?

【问题讨论】:

【参考方案1】:

str.replace 默认情况下会进行基于正则表达式的替换,这也适用于部分匹配。 replace,OTOH,默认情况下只会根据完全匹配执行替换,除非 regex 标志设置为 true。

data['Organization'] = (
    data['Organization'].replace('Greece': 'Rome', regex=True))

【讨论】:

【参考方案2】:

pd.Series.replacepd.Series.str.replace 不同:

pd.Series.replace 用于替换整个元素。它也适用于非字符串元素。 pd.Series.str.replace 用于替换子字符串,可选地使用正则表达式。

这是一个展示差异的最小示例:

df = pd.DataFrame('A': ['foo', 'fuz', np.nan])

df['B'] = df['A'].replace(['foo', 'fuz'], ['food', 'fuzzy'])
df['C'] = df['A'].str.replace('f.', 'ba', regex=True)

print(df)

     A      B    C
0  foo   food  bao
1  fuz  fuzzy  baz
2  NaN    NaN  NaN

【讨论】:

以上是关于替换一系列熊猫中的值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用熊猫替换列中的值时出错[重复]

用列/系列中的值替换熊猫子字符串

替换熊猫数据框系列中的每个值[重复]

熊猫:SettingWithCopyWarning [重复]

如何优雅地对熊猫中的一系列列表进行热编码[重复]

从列表中替换熊猫系列的值