如何使用Python对CSV表格按指定字段分组计算丰度总和
最优解决方案:使用pandas库的分组聚合功能
pandas内置的groupby方法专门用于按指定列分组做聚合计算,完全不需要手动写遍历逻辑,也不需要提前设置bins,完全匹配你的需求。
具体实现步骤
- 第一步:安装pandas(如果还没装的话)
终端执行命令:pip install pandas - 第二步:编写代码完成计算
示例代码如下:
import pandas as pd # 读取CSV文件,数千行规模读取速度极快 df = pd.read_csv("你的CSV文件路径.csv") # 1. 按Class+DBE相同组合分组,对Abundance求和 sum_by_class_dbe = df.groupby(["Class", "DBE"])["Abundance"].sum().reset_index() # 2. 按(H/C, N/C)相同组合分组,对Abundance求和 sum_by_hc_nc = df.groupby(["H/C", "N/C"])["Abundance"].sum().reset_index() # 3. 按(H/C, O/C)相同组合分组,对Abundance求和 sum_by_hc_oc = df.groupby(["H/C", "O/C"])["Abundance"].sum().reset_index() # 若需要导出结果为CSV可执行以下代码 sum_by_class_dbe.to_csv("sum_by_class_dbe.csv", index=False) sum_by_hc_nc.to_csv("sum_by_hc_nc.csv", index=False) sum_by_hc_oc.to_csv("sum_by_hc_oc.csv", index=False)
补充说明
- 若你的CSV实际字段名和描述有差异,直接替换
groupby里的对应列名即可 - 数千行规模对pandas无性能压力,全流程执行时间在毫秒级
reset_index()作用是把分组用的键从索引转为普通列,方便后续处理或导出查看
内容的提问来源于stack exchange,提问作者user17570368
相关产品推荐
相关产品推荐

