gpt4 book ai didi

python - pandas 映射到数组字典

转载 作者:行者123 更新时间:2023-12-01 01:08:52 24 4
gpt4 key购买 nike

我有一个国家/地区代码 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]

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

最佳答案

您可以通过DataFrame.from_dict创建辅助DataFrame和 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 region
0 CN China Asia
1 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)

关于python - pandas 映射到数组字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com