可以使用numpy中的combinations方法生成所有可能的组合,再利用pandas中的loc方法按照组合的条件进行筛选并求和。
示例代码如下:
import numpy as np
import pandas as pd
# 创建示例数据表
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 生成所有可能的组合
combs = np.array(np.meshgrid(df.index, df.index)).T.reshape(-1, 2)
# 筛选组合并求和
sums = [df.loc[comb, 'A':'C'].sum().tolist() for comb in combs if comb[0] < comb[1]]
以上代码中,通过meshgrid方法生成所有可能的组合,并利用reshape方法转换格式;再通过loc方法按照组合的条件进行筛选并求和,并把求和结果转换为列表。最终得到的sums列表包含了所有可能的组合和对应的求和结果。