You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于指定列组合列表计算Pandas DataFrame的列和?

针对指定列组合计算Pandas DataFrame行求和的实现方法

核心思路

只遍历你指定的列组合,解析每个组合对应的列名,按行计算这些列的数值之和,最后将结果与原Date列合并成新的DataFrame,避免无意义的全组合计算。

具体实现步骤

  1. 构造示例数据(可替换为你的实际数据集)
import pandas as pd
import numpy as np

# 生成示例时间序列和随机数值列
dates = pd.date_range('2024-01-01', periods=5)
data = {
    'Date': dates,
    'A': np.random.randint(1, 10, 5),
    'B': np.random.randint(1, 10, 5),
    'C': np.random.randint(1, 10, 5),
    'D': np.random.randint(1, 10, 5),
    'E': np.random.randint(1, 10, 5),
    'F': np.random.randint(1, 10, 5),
    'G': np.random.randint(1, 10, 5),
    'H': np.random.randint(1, 10, 5)
}
df = pd.DataFrame(data)
  1. 定义需要计算的列组合列表
list_possibilities = ['A+B',  'A+B+D',  'B+D+E+G',  'F+H',  'D+E+F+G+H',  'D',  'F',  'G+H']
  1. 遍历组合并计算行求和
# 初始化结果字典,保留原Date列
result_dict = {'Date': df['Date']}

for combo in list_possibilities:
    # 拆分组合字符串,提取需要求和的列名
    target_cols = combo.split('+')
    # 按行计算指定列的和,用组合字符串作为新列名
    result_dict[combo] = df[target_cols].sum(axis=1)

# 将结果字典转换为最终DataFrame
final_df = pd.DataFrame(result_dict)

关键说明

  • split('+')可以快速解析任意组合的列名,不管是单一列(如'D')还是多列组合都能适配。
  • sum(axis=1)指定按行求和,对应每个时间点的列值总和,计算效率高。
  • 最终的final_df仅包含Date列和你指定的所有组合求和结果,完全满足需求,且不会产生冗余计算,适合列数超过100的大型数据集。

内容的提问来源于stack exchange,提问作者datadatadata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:30:59