2 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個贊
默認(rèn)情況下,您可以通過原始 DataFrame創(chuàng)建輔助 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 region
0 CN China Asia
1 CH Switzerland Europe
如果為map以下內(nèi)容創(chuàng)建 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)

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個贊
可以通過以下方式實(shí)現(xiàn)相同的目標(biāo)map:
df.join(pd.DataFrame(df['cntr'].map(m).tolist(), columns=['name', 'region']))
輸出:
cntr name region
0 CN China Asia
1 CH Switzerland Europe
添加回答
舉報