熊猫新手,学习。 在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 我在这里想念什么?
非常感谢
答案 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
。尝试检查是否存在这种情况