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

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

Python:根據 Key 和附加條件將聚合列添加到 DataFrame

Python:根據 Key 和附加條件將聚合列添加到 DataFrame

侃侃無極 2022-03-09 21:09:14
我在以下視圖中有 2 個數據框: dogs數據框是:DogID   PuppyName1  PuppyName2  PuppyName3  PuppyName4   DogWeightDog1       Nick         NaN         NaN      NaN            12.7Dog2       Jack         Fox         Rex      NaN            15.5         Dog3       Snack        NaN         NaN      NaN            10.2Dog4       Yosee        Petty       NaN      NaN            16.9puppyWeights數據框是:PuppyName   Jan17  Jun18  Dec18  April19   Nick         0.8    1.7     3.7     4.6Jack         0.6    1.3     2.8     3.5        Fox          0.9    1.7     3.4     4.3Rex          1.0    2.3     3.0     4.2Snack        0.8    1.7     2.8     4.4Yosee        0.6    1.2     3.1     4.3Petty        0.5    1.3     2.8     3.5 Dogs我需要根據數據框將有關幼犬體重的信息按月添加到數據PuppyWeights框中。如果 Dog 有超過 1 個孩子,例如:Dog2, Dog3-> 我需要對每個月的體重值取平均值PuppyName。例如: Dog2應該是表Jack和表Fox中的值之間的平均值PuppyWeights:DogID   Jan17  Jun18  Dec18  April19   DogWeightDog2     0.75  1.5     3.1     3.9        15.5     我嘗試使用melt函數將['PuppyName1',  'PuppyName2',  'PuppyName3',  'PuppyName4']列轉換為行。dogs但是,當狗有多個孩子時,我不知道如何通過聚合將月份信息添加到數據幀中。df2 = dogs.melt(id_vars=['DogID','DogWeight'], var_name="Puppies", value_name='PuppyName')期望的輸出是:DogID   Jan17  Jun18  Dec18  April19   DogWeightDog1     0.8    1.7    3.7     4.6        12.7     Dog2     0.75   1.5    3.1     3.9        15.5   Dog3     0.8    1.7    2.8     4.4        10.2Dog4     0.55   1.25   2.95    3.9        16.9  如何按月份將體重信息添加到dogs數據框中?我會很感激任何想法。謝謝)
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

這是melt, dogsthenmerge和groupby


df2 = dogs.melt(id_vars=['DogID','DogWeight'], var_name="Puppies", value_name='PuppyName').dropna()


df2.merge(df,on='PuppyName',how='left').groupby('DogID').mean()

Out[423]: 

       DogWeight     Jan17     Jun18     Dec18  April19

DogID                                                  

Dog1        12.7  0.800000  1.700000  3.700000      4.6

Dog2        15.5  0.833333  1.766667  3.066667      4.0

Dog3        10.2  0.800000  1.700000  2.800000      4.4

Dog4        16.9  0.550000  1.250000  2.950000      3.9


查看完整回答
反對 回復 2022-03-09
  • 1 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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