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

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

將值從小數(shù)據(jù)框映射到大數(shù)據(jù)框

將值從小數(shù)據(jù)框映射到大數(shù)據(jù)框

qq_笑_17 2021-03-30 13:15:58
我有兩個(gè)數(shù)據(jù)框。DF1:Page      LineNum      Value1          1            0.51          2            0.61          3            0.72          1            0.92          2            0.4DF2:初始數(shù)據(jù)幀是前三列,我必須生成名為New_Value的第四列。Page      LineNum      Word    New_Value1          1            g1      0.51          1            g2      0.51          1            g3      0.51          1            g4      0.51          2            g5      0.61          2            g6      0.61          3            g7      0.71          3            g8      0.7...我必須生成DF2的第四列,該列實(shí)際上是從DF1的唯一“ Page”和“ LineNum”值映射的。在DF2中,只是根據(jù)DF1中相對于“頁面”和“ LineNum”的唯一值重復(fù)這些值。我目前正在通過for循環(huán)執(zhí)行此操作:    for index, row in DF1.iterrows():        DF2.ix[((DF2['Page'] == row['Page']) & (DF2['LineNum'] == row['LineNum'])),['New_Value']] = row['Value']這絕對可以,但是兩個(gè)數(shù)據(jù)幀都很大。所以我需要一些優(yōu)化的功能,也許使用groupby和lambda,但無法設(shè)計(jì)出確切的功能。請?zhí)岢鰶]有For循環(huán)的優(yōu)化版本。如果還有其他需要我解釋的內(nèi)容,請發(fā)表評論。我正在使用Python3和pandas。
查看完整描述

1 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊

我認(rèn)為需要merge左連接:


df = (df2.merge(df1.rename(columns={'Value':'New_Value'}),

                on=['Page','LineNum'], how='left'))

print (df)


   Page  LineNum Word  New_Value

0     1        1   g1        0.5

1     1        1   g2        0.5

2     1        1   g3        0.5

3     1        1   g4        0.5

4     1        2   g5        0.6

5     1        2   g6        0.6

6     1        3   g7        0.7

7     1        3   g8        0.7


查看完整回答
反對 回復(fù) 2021-04-20
  • 1 回答
  • 0 關(guān)注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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