gpt4 book ai didi

python - 我想对 multiindex-dataframe 中一列的行求和,但保留其他列的值

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:36 27 4
gpt4 key购买 nike

我有以下形式的数据框:

                                   Price  Quantity
Date Mat Str Type
2016-01-05 2016-02-19 3125.0 C 44 0.069
C 44 0.032
C 44 0.015
2016-01-06 2016-02-15 3169.0 P 69 0.069

我希望对数量列的行求和,但保持价格列不变(例如,用均值制作另一个价格列)

我考虑过将 Price 列作为索引的一部分,但由于我的目标是比较此列的 PriceQuantity Df 与其他形状相似的 Df 我可能会遇到一些问题。

下面是一些重新创建 df 的代码:


import pandas as pd



data = [{'Date':'2016-01-05', 'Mat':'2016-02-19', 'Str': 3125.0, 'Type': 'C', 'Quantity':0.069, 'Price':44},
{'Date':'2016-01-05', 'Mat':'2016-02-19', 'Str': 3125.0, 'Type': 'C', 'Quantity':0.032, 'Price':44},
{'Date':'2016-01-05', 'Mat':'2016-02-19', 'Str': 3125.0, 'Type': 'C', 'Quantity':0.015, 'Price':44},
{'Date':'2016-01-06', 'Mat':'2016-02-15', 'Str': 3169.0, 'Type': 'P', 'Quantity':0.069, 'Price':69}]


df1 = pd.DataFrame(data)
df1 = df1.set_index(['Date', 'Mat', 'Str', 'Type'])

感谢您的帮助!

最佳答案

我相信您需要按某个级别进行分组 - 例如首先通过 level=0 使用 GroupBy.transform通过聚合值填充新列:

df1['Sum'] = df1.groupby(level=0)['Quantity'].transform('sum')
print (df1)
Quantity Price Sum
Date Mat Str Type
2016-01-05 2016-02-19 3125.0 C 0.069 44 0.116
C 0.032 44 0.116
C 0.015 44 0.116
2016-01-06 2016-02-15 3169.0 P 0.069 69 0.069

关于python - 我想对 multiindex-dataframe 中一列的行求和,但保留其他列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57673209/

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