python - 在pandas df中对具有相同名称的行中的所有字段求和的方式?
问题描述
我正在用头撞墙:我想为“融合”列中具有相同值的所有行逐行添加所有值。这是一个虚拟示例:
import pandas as pd
rows_l = [['AFF1_KMT2A', 3.0, 1.0, 1.0, 1.0, 4, 6.0],
['AFF1_KMT2A', 3.0, 2.0, 1.0, 0.0, 3, 6.0],
['TCF3_PBX1', 3.0, 1.0, 1.0, 0.0, 3, 5.0],
['TCF3_PBX1', 0.0, 0.0, 0.0, 1.0, 1, 1.0],
['ABL1_BCR', 1.0, 1.0, 1.0, 2.0, 4, 5.0]]
col_l = ['fusion', 'FusionCatcher', 'Manta', 'STARfusion', 'TopHat','tool_count', 'tot']
my_df = pd.DataFrame(rows_l, columns=col_l)
给我这个 my_df:
融合 | 融合捕手 | 蝠鲼 | 星融合 | 顶帽 | 工具计数 | 总 | |
---|---|---|---|---|---|---|---|
0 | ABL1_BCR | 1.0 | 1.0 | 1.0 | 2.0 | 4 | 5.0 |
1 | AFF1_KMT2A | 3.0 | 2.0 | 1.0 | 0.0 | 3 | 6.0 |
2 | TCF3_PBX1 | 3.0 | 1.0 | 1.0 | 0.0 | 3 | 5.0 |
3 | AFF1_KMT2A | 3.0 | 1.0 | 1.0 | 1.0 | 4 | 6.0 |
4 | TCF3_PBX1 | 0.0 | 0.0 | 0.0 | 1.0 | 1 | 1.0 |
当然,在我的真实文件中,相同的行并不总是相隔一行,而是到处都是......
我的输出应该是这样的:
融合 | 融合捕手 | 蝠鲼 | 星融合 | 顶帽 | 工具计数 | 总 | |
---|---|---|---|---|---|---|---|
0 | AFF1_KMT2A | 6.0 | 3.0 | 2.0 | 1.0 | 7 | 12.0 |
1 | TCF3_PBX1 | 3.0 | 1.0 | 1.0 | 1.0 | 4 | 6.0 |
2 | ABL1_BCR | 1.0 | 1.0 | 1.0 | 2.0 | 4 | 5.0 |
到目前为止,我只发现df['whatever_you_want_to_sum'].groupby(df['col_names_if_same_wil_be_bundled'])
了但这似乎只适用于对我没有多大帮助的 2 列。
有什么特别python pandas
的方法可以做到这一点,还是我应该继续写我for-loops
的,直到打印看起来正确?
解决方案
推荐阅读
- android - 如何使用android studio获取APK文件中对应库生成的.so文件信息
- android - Android 数据绑定使用原始的 MutableLiveData
- mysql - 根据目标数据库中的 where 条件将表数据从一个数据库复制到另一个数据库
- python-3.x - 如何将 excel/csv 文件作为函数参数传递?
- php - 按产品名称获取产品 ID(转义特殊字符)
- c# - 运行 Scaffold DBContext 而不覆盖实体框架核心中的自定义代码
- android - 如何解决 Kotlin 的膨胀类错误?
- javascript - 更新 mobx 存储值后,组件的 render() 没有被调用
- angular - 类构造函数 AnimationEngine 不能在没有 new 的情况下被调用
- kibana - 在 Elastalert 计划间隔选项中丢失