熊猫映射到数组字典

我有一个 df 国家代码:


  cntr

0 CN

1 CH

我想从字典中映射出我的全名和地区


cntrmap = {"CN":["China","Asia"],"CH":["Switzerland","Europe"]}

我希望有这样的事情,但不起作用..


df['name'] = df['cntr'].map(cntrmap)[0]

df['region'] = df['cntr'].map(cntrmap)[1]

你们有什么建议吗?谢谢大家!


慕桂英546537
浏览 165回答 2
2回答

Cats萌萌

默认情况下,您可以通过原始 DataFrame创建辅助 DataFrameDataFrame.from_dict和DataFrame.join到原始 DataFrame 左连接:df = pd.DataFrame({'cntr':['CN','CH']})cntrmap = {"CN":["China","Asia"],"CH":["Switzerland","Europe"]}df1 = pd.DataFrame.from_dict(cntrmap, orient='index', columns=['name','region'])df = df.join(df1, on='cntr')print (df)  cntr         name  region0   CN        China    Asia1   CH  Switzerland  Europe如果为map以下内容创建 2 个字典,您的解决方案有效:map1 = {k:v[0] for k, v in cntrmap.items()}map2 = {k:v[1] for k, v in cntrmap.items()}df['name'] = df['cntr'].map(map1)df['region'] = df['cntr'].map(map2)

慕莱坞森

可以通过以下方式实现相同的目标map:df.join(pd.DataFrame(df['cntr'].map(m).tolist(), columns=['name', 'region']))输出:  cntr         name  region0   CN        China    Asia1   CH  Switzerland  Europe
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python