.replace()不会替换元素

时间:2019-05-26 07:15:40

标签: python pandas dataframe replace

熊猫新手,学习。 在df中有一列,我需要用特定数据替换其中的某些元素。

Daily_Report是我的df。我需要将“国家/地区”列中的“ LI”和“ MC”替换为“ CH”,“ FR”。我写了下面的文章,该文章起初是有效的,但是从Jupyter笔记本开始重新运行笔记本时,它什么也没做

Daily_Report['Country'].replace('LI', 'CH', inplace=True)
Daily_Report['Country'].replace('MC', 'FR', inplace=True)
Daily_Report['Country'].value_counts()

GB    8132
FR    5811
DE    3390
ES    2280
IT    1930
CH    1516
NL    1414
SE     938
LI      31
MC      24
Name: Country, dtype: int64 

对于成功的替换,LI在运行value.counts()后不会显示MC 我在这里想念什么?

非常感谢

2 个答案:

答案 0 :(得分:2)

对我来说,在pandas 0.24.2中表现出色:

Daily_Report = pd.DataFrame({ 'Country':['LI','MC','SE','NL']})
Daily_Report['Country'].replace('LI', 'CH', inplace=True)
Daily_Report['Country'].replace('MC', 'FR', inplace=True)
print (Daily_Report)
  Country
0      CH
1      FR
2      SE
3      NL

替代DataFrame.replace和嵌套字典-用于替换和内部映射的外部指定列:

Daily_Report = pd.DataFrame({ 'Country':['LI','MC','SE','NL']})
Daily_Report1 = Daily_Report.replace({'Country':{'LI':'CH','MC':'FR'}})
print (Daily_Report1)
  Country
0      CH
1      FR
2      SE
3      NL

答案 1 :(得分:2)

Daily_Report['Country'].replace('LI', 'CH', inplace=True)
Daily_Report['Country'].replace('MC', 'FR', inplace=True)

除非“ LI”和“ MC”具有跟踪或前导空格,例如 'LI '' MC。尝试检查是否存在这种情况