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

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

在 pandas 數據框上拆分和執行功能的最有效方法

在 pandas 數據框上拆分和執行功能的最有效方法

泛舟湖上清波郎朗 2022-06-28 17:44:39
我得到了一個數據框,其中包含行中的值(A 和 B)的兩個測量值,每列代表樣本的測量值。下面的例子:ID S1 S2 S3M1_A 1 2 3 M1_B 3 2 1M2_A 1 2 3 M2_B 3 2 1 我需要為每個樣本的每次測量計算 B 與 A+B 的比率 [即 (B/(A+B))]。結果數據框示例:ID S1 S2 S3M1 0.75 0.5 .25 M2 0.75 0.5 .25目前,我一次讀取文件兩行,檢查 ID 是否匹配(不包括 _A 或 _B),將“行”轉換為向量,然后執行計算到向量。在較大的樣本集上,這變得非常緩慢。使用 pandas 等庫最有效的方法是什么?所有幫助表示贊賞!
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

這聽起來像是一個經典的 groupby-aggregate 問題。Pandas 也可以輕松處理 ID 列中的下劃線。


df['ID'] = df['ID'].str.split('_').str[0]

df = df.groupby('ID').agg(lambda x: x.values[-1]/x.sum())

print(df)


      S1   S2    S3

ID                 

M1  0.75  0.5  0.25

M2  0.75  0.5  0.25


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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