为了账号安全,请及时绑定邮箱和手机立即绑定

在 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 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号