Python从字典键创建新列

har*_*kin 3 python dataframe pandas

我正在尝试使用Python进行数据科学学习并遇到以下问题.

假设我们有一个表单的数据框

在此输入图像描述

和形式的字典

    Regions = {“Central Asia”: [“Afghanistan”], 
“Europe”: [“Albania”, “Andorra”], 
“Africa”: [“Algeria”], 
“America”: [“American Samoa”]}
Run Code Online (Sandbox Code Playgroud)

我想在数据框中创建一个新列,该字典中的键是条目,如下所示:

在此输入图像描述

有没有一种很好的方法在Python中执行此操作?

谢谢你的帮助!!

jez*_*ael 7

你可以用mapdict在哪里换键与值:

d = {k: oldk for oldk, oldv in Regions.items() for k in oldv}
print (d)
{'Andorra': 'Europe', 'Afghanistan': 'Central Asia',
 'Algeria': 'Africa', 'American Samoa': 'America', 'Albania': 'Europe'}

df['Region'] = df['country'].map(d)
print (df)
          country        Region
0     Afghanistan  Central Asia
1         Albania        Europe
2         Algeria        Africa
3  American Samoa       America
4         Andorra        Europe
Run Code Online (Sandbox Code Playgroud)


cs9*_*s95 5

一根班轮使用DataFrame.from_dictdf.stack()(感谢MaxU!):

In [8]: pd.DataFrame.from_dict(Regions, orient='index').stack()\
                     .reset_index(level=0)\
                     .rename(columns={'level_0':'Region',0:'country'})\
                     .reset_index(drop=True)
Out[8]: 
         Region         country
0        Europe         Albania
1        Europe         Andorra
2        Africa         Algeria
3  Central Asia     Afghanistan
4       America  American Samoa
Run Code Online (Sandbox Code Playgroud)