gpt4 book ai didi

python - 根据其他行的条件添加数据框行

转载 作者:行者123 更新时间:2023-12-04 15:11:51 25 4
gpt4 key购买 nike

有没有办法根据数据框中的其他行向数据框中添加行?

我有一个看起来像这样的数据框:

Year   Month   Project   Account   Value
2020 Jan abc Revenue 100
2020 Jan xyz Profit 20
2020 Jan abc Profit 10
2020 Jan xyz Revenue 350

我想对所有具有收入帐户的行执行计算,公式应该是成本 = 收入 - 所有相同列(年、月、项目)的利润(所有行都是唯一的,所以会有每次计算只有一个可能的匹配项)。

所以结果看起来像

Year   Month   Project   Account   Value
2020 Jan abc Revenue 100
2020 Jan xyz Profit 20
2020 Jan abc Profit 10
2020 Jan xyz Revenue 350
2020 Jan abc Cost 90
2020 Jan xyz Cost 340

我对 Pandas 很陌生,但在我所做的所有搜索中,我还没有找到用 Pandas 执行此操作的 Pythonic 方法。数据集非常大(超过 100K 行),所以我宁愿不必迭代计算,但如果必须这样做,我会考虑使用另一种数据结构来存储数据框(如字典)并执行计算。

最佳答案

使用pivotstack:

(df.pivot_table(index=['Year','Month', 'Project'],
columns=['Account'], values='Value'
)
.assign(Cost=lambda x: x['Revenue']-x['Profit'])
.stack().reset_index(name='Value')
)

输出:

   Year Month Project  Account  Value
0 2020 Jan abc Profit 10
1 2020 Jan abc Revenue 100
2 2020 Jan abc Cost 90
3 2020 Jan xyz Profit 20
4 2020 Jan xyz Revenue 350
5 2020 Jan xyz Cost 330

关于python - 根据其他行的条件添加数据框行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65084010/

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