Заменить нулевые значения в столбце, соответствующем определенному значению в другом столбце панд - PullRequest
1 голос
/ 10 июля 2019

У меня есть датафрейм, как показано ниже:

import pandas as pd
df = pd.DataFrame({'Country': ['USA','USA','MEX','IND','UK','UK','UK'],
                   'Region': ['Americas','NaN','NaN','Asia','Europe','NaN','NaN'],
                   'Flower': ['Rose','Lily','Lily','Orchid','Petunia','Lotus','Dandelion']})

Я хочу заменить значения NaN в Регионе на значения других регионов. Под этим я подразумеваю, что если страна - США или Мексика, регион должен быть Америкой, а если страна - Великобританией, то регион должен быть Европой.

Ожидаемый результат -

result = pd.DataFrame({'Country': ['USA','USA','MEX','IND','UK','UK','UK'],
                       'Region': ['Americas','Americas','Americas','Asia','Europe','Europe','Europe'],
                       'Flower': ['Rose','Lily','Lily','Orchid','Petunia','Lotus','Dandelion']})

Я хочу знать простой способ, без необходимости писать операторы if else.

1 Ответ

1 голос
/ 10 июля 2019

Вы можете попробовать код ниже, если ffill не вариант,

df['Region'] = np.select((df.Country.isin(['USA', 'MEX']), df.Country == 'UK'),
                         ('Americas', 'Europe'), df.Region) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...