gpt4 book ai didi

python - 基于列的条件 cumsum

转载 作者:行者123 更新时间:2023-11-28 22:34:35 25 4
gpt4 key购买 nike

给定以下数据框,我如何生成条件累积和列。

import pandas as pd
import numpy as np

data = {'D':[2015,2015,2015,2015,2016,2016,2016,2017,2017,2017], 'Q':np.arange(10)}
df = pd.DataFrame(data)

D Q
0 2015 0
1 2015 1
2 2015 2
3 2015 3
4 2016 4
5 2016 5
6 2016 6
7 2017 7
8 2017 8
9 2017 9

累计和加整列。我正在尝试弄清楚如何将 np.cumsum 与条件函数一起使用。

df['Q_cum'] = np.cumsum(df.Q)

D Q Q_cum
0 2015 0 0
1 2015 1 1
2 2015 2 3
3 2015 3 6
4 2016 4 10
5 2016 5 15
6 2016 6 21
7 2017 7 28
8 2017 8 36
9 2017 9 45

但我打算根据特定列创建累计和。在此示例中,我希望它位于 D 列中。类似于以下数据框:

      D  Q  Q_cum
0 2015 0 0
1 2015 1 1
2 2015 2 3
3 2015 3 6
4 2016 4 4
5 2016 5 9
6 2016 6 15
7 2017 7 7
8 2017 8 15
9 2017 9 24

最佳答案

>>> df['Q_cum'] = df.groupby('D').cumsum()
>>> df
D Q Q_cum
0 2015 0 0
1 2015 1 1
2 2015 2 3
3 2015 3 6
4 2016 4 4
5 2016 5 9
6 2016 6 15
7 2017 7 7
8 2017 8 15
9 2017 9 24

正如@Ayhan 所说,如果您想在特定列(如此处的 Q)上 cumsum df.groupby('D')['Q'].cumsum()

关于python - 基于列的条件 cumsum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38864592/

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