第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何映射到 pandas 字典中的多個值

如何映射到 pandas 字典中的多個值

開滿天機 2024-01-16 10:25:10
我有以下內(nèi)容pandas df:NameJackAlexJackieSusan我還有以下命令:d = {'Jack':['Male','22'],'Alex':['Male','26'],'Jackie':['Female','28'],'Susan':['Female','30']}Gender我想為和添加兩列,Age以便我的df回報:Name      Gender    AgeJack      Male       22Alex      Male       26Jackie    Female     28Susan     Female     30我努力了:df['Gender'] = df.Name.map(d[0])df['Age'] = df.Name.map(d[1])但沒有這樣的運氣。任何想法或幫助將不勝感激!謝謝!
查看完整描述

4 回答

?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗 獲得超9個贊

df['Gender'] = df.Name.map(lambda x: d[x][0])
df['Age'] = df.Name.map(lambda x: d[x][1])


查看完整回答
反對 回復(fù) 2024-01-16
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊

使用pd.DataFrame構(gòu)造函數(shù) withSeries.map并使用pd.concatconcat with?df


In [2696]: df = pd.concat([df,pd.DataFrame(df.Name.map(d).tolist(), columns=['Gender', 'Age'])], axis=1)


In [2695]: df

Out[2696]:?

? ? ?Name? Gender Age

0? ? Jack? ? Male? 22

1? ? Alex? ? Male? 26

2? Jackie? Female? 28

3? ?Susan? Female? 30


查看完整回答
反對 回復(fù) 2024-01-16
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗 獲得超6個贊

取出字典中的所有值


d = {'Jack':['Male','22'],'Alex':['Male','26'],'Jackie':['Female','28'],'Susan':['Female','30']}


value_list = list(d.values())

df = pd.DataFrame(value_list, columns =['Gender', 'Age'])

print(df)  


查看完整回答
反對 回復(fù) 2024-01-16
?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗 獲得超10個贊

如果字典中沒有匹配項,解決方案也能正常工作,例如:


d = {'Alex':['Male','26'],'Jackie':['Female','28'],'Susan':['Female','30']}



print (df)

? ? ?Name? Gender? Age

0? ? Alex? ? Male? ?26

1? ? Jack? ? ?NaN? NaN

2? Jackie? Female? ?28

3? ?Susan? Female? ?30

DataFrame.from_dict從字典中使用并添加到列Nameby?DataFrame.join,優(yōu)點是輸入數(shù)據(jù)中的更多列都以相同的方式工作:

df = df.join(pd.DataFrame.from_dict(d, orient='index', columns=['Gender','Age']), on='Name')

print (df)

? ? ?Name? Gender Age

0? ? Jack? ? Male? 22

1? ? Alex? ? Male? 26

2? Jackie? Female? 28

3? ?Susan? Female? 30

如果創(chuàng)建 2 個字典,您的解決方案應(yīng)該有效:


d1 = {k:v[0] for k,v in d.items()}

d2 = {k:v[1] for k,v in d.items()}


df['Gender'] = df.Name.map(d1)

df['Age'] = df.Name.map(d2)

print (df)

? ? ?Name? Gender Age

0? ? Jack? ? Male? 22

1? ? Alex? ? Male? 26

2? Jackie? Female? 28

3? ?Susan? Female? 30


查看完整回答
反對 回復(fù) 2024-01-16
  • 4 回答
  • 0 關(guān)注
  • 222 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號