Python 大熊猫的条件成熟度
我在熊猫中有以下数据帧Python 大熊猫的条件成熟度,python,pandas,Python,Pandas,我在熊猫中有以下数据帧 code rank quant sales 123 1 0 2 123 1 12 2 123 1 0 2 123 2 0 1 123 2 10 1 我想按排名对销售分组进行条件求和。如果quant不是零,则
code rank quant sales
123 1 0 2
123 1 12 2
123 1 0 2
123 2 0 1
123 2 10 1
我想按排名对销售分组进行条件求和。如果quant不是零,则将其添加到同一行的累积和中
code rank quant sales cumsum
123 1 0 2 2
123 1 12 2 16
123 1 0 2 18
123 2 0 1 1
123 2 10 1 12
如何在熊猫身上做到这一点 先添加列,然后与
df['rank']
Series一起使用:
df['cumsum'] = df['quant'].add(df['sales']).groupby(df['rank']).cumsum()
或者对两列使用sum
:
df['cumsum'] = df[['quant', 'sales']].sum(axis=1).groupby(df['rank']).cumsum()
另一种方法是在groupby之前创建新列:
df['cumsum'] = (df.assign(cumsum=df['quant'].add(df['sales']))
.groupby('rank')['cumsum'].cumsum())
print (df)
code rank quant sales cumsum
0 123 1 0 2 2
1 123 1 12 2 16
2 123 1 0 2 18
3 123 2 0 1 1
4 123 2 10 1 12
如果我的groupby和2在一起呢variables@Neil-然后将最后一个解决方案或前2个解决方案与
df['rank']
更改为[df['code'],df['rank']]