亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

熊貓映射到數組字典

熊貓映射到數組字典

慕桂英546537 2021-11-30 10:48:25
我有一個 df 國家代碼:  cntr0 CN1 CH我想從字典中映射出我的全名和地區cntrmap = {"CN":["China","Asia"],"CH":["Switzerland","Europe"]}我希望有這樣的事情,但不起作用..df['name'] = df['cntr'].map(cntrmap)[0]df['region'] = df['cntr'].map(cntrmap)[1]你們有什么建議嗎?謝謝大家!
查看完整描述

2 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

默認情況下,您可以通過原始 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  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)


查看完整回答
反對 回復 2021-11-30
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

可以通過以下方式實現相同的目標map:


df.join(pd.DataFrame(df['cntr'].map(m).tolist(), columns=['name', 'region']))

輸出:


  cntr         name  region

0   CN        China    Asia

1   CH  Switzerland  Europe


查看完整回答
反對 回復 2021-11-30
  • 2 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號