.replace () не заменяет элементы - PullRequest
1 голос
/ 26 мая 2019

новичок в пандах, обучение.В моем 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 MC не будет отображаться послеработает value.counts () Что мне здесь не хватает?

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 26 мая 2019
Daily_Report['Country'].replace('LI', 'CH', inplace=True)
Daily_Report['Country'].replace('MC', 'FR', inplace=True)

Как вы и должны работать, если у 'LI' и 'MC' нет трассировки или начальных пробелов, таких как 'LI ' или ' MC. Попробуйте проверить, так ли это

2 голосов
/ 26 мая 2019

Для меня хорошо работает в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...