gpt4 book ai didi

python - 对索引列组合的数据帧求和

转载 作者:行者123 更新时间:2023-12-01 22:56:41 26 4
gpt4 key购买 nike

我有一个包含不同部分的数据框(这里只有 2 个部分和速度,但一个电路最多可以有 8 个部分和 6 个测量速度),如下所示:

<表类="s-表"><头>节速度数据1数据2<正文>一个101.52.5一个201.02.0B102.53.5B202.03.0

我想对所有可能电路的数据列求和

<表类="s-表"><头>AB数据1数据2<正文>10104.06.010203.55.520103.55.520203.05.0

我该怎么做?我可以进行组合,但不确定如何对它们的数据列求和。

最佳答案

如何使用 itertools.product,然后按组求和:

from itertools import product

df2 = df.set_index(['section', 'speed']).T

out = (pd.concat({k: df2[list(k)].sum(1)
for k in product(*(d for _,d in df2.groupby(axis=1, level=0)))})
.unstack(level=-1)
)

输出:

                 Data1  Data2
(A, 10) (B, 10) 4.0 6.0
(B, 20) 3.5 5.5
(A, 20) (B, 10) 3.5 5.5
(B, 20) 3.0 5.0

对于提供的确切格式:

df2 = df.set_index(['section', 'speed']).T

sections = df2.columns.get_level_values('section').unique()

out = (pd.concat({tuple(x[1] for x in k):
df2[list(k)].sum(1)
for k in product(*(d for _,d in df2.groupby(axis=1, level=0)))
})
.unstack(level=-1)
.rename_axis(sections).reset_index()
)

输出:

    A   B  Data1  Data2
0 10 10 4.0 6.0
1 10 20 3.5 5.5
2 20 10 3.5 5.5
3 20 20 3.0 5.0

关于python - 对索引列组合的数据帧求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73039265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com