替换与另一列pandas中的特定值相对应的列中的空值

时间:2019-07-10 20:04:34

标签: python pandas

我有一个如下数据框:

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']})

我想用其他区域的值替换Region中的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 个答案:

答案 0 :(得分:1)

如果无法选择填充,您可以尝试以下代码,

df['Region'] = np.select((df.Country.isin(['USA', 'MEX']), df.Country == 'UK'),
                         ('Americas', 'Europe'), df.Region)