gpt4 book ai didi

python - Pandas Dataframe 将一列分组,同时将其他列相乘

转载 作者:行者123 更新时间:2023-11-30 22:04:59 25 4
gpt4 key购买 nike

我正在使用导入了 pandas 的 python 来操作我拥有的 csv 文件中的一些数据。只是玩玩尝试学习新东西。

我有以下数据框:

Image of Data Frame

我想按 col1 对数据进行分组,以便得到以下结果。这是 col1 和 col3 和 col4 上的 groupby 相乘。

Image of result I would like

我一直在观看一些 YouTube 视频并阅读有关堆栈溢出的一些类似问题,但我遇到了麻烦。到目前为止,我有以下涉及创建一个新的 Col 来保存 Col3 x Col4 的结果:

df['Col5'] = df.Col3 * df.Col4
gf = df.groupby(['col1', 'Col5'])

最佳答案

您可以使用解决方案而无需创建新列,您可以多列并按列df['Col1']与聚合sum进行聚合,它是syntactic sugar:

gf = (df.Col3 * df.Col4).groupby(df['Col1']).sum().reset_index(name='Col2')
print (gf)
Col1 Col2
0 12345 38.64
1 23456 2635.10
2 45678 419.88

另一种解决方案是可以通过 set_indexCol1 创建索引,通过 prod 创建多列,并按 level=0 索引创建最后一个 sum:

gf = df.set_index('Col1')[['Col3','Col4']].prod(axis=1).sum(level=0).reset_index(name='Col2')

关于python - Pandas Dataframe 将一列分组,同时将其他列相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53133362/

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