如何解决Python_Cumulative sum 基于两个条件
我正在尝试根据两种不同的条件在 python 中计算累积和。
如您在附图中所见,Calculation
列将采用与 Number
列相同的值,只要 Cat1
和 Cat2
列不改变。
一旦 Cat1
列发生变化,我们应该重置 Number
列。
Calculation
列与 Number
列保持不变,一旦 Cat2
列更改为与 Cat1
列的值相同,Calculation
列将采用Number
列的最后一个值并将其添加到下一个。
以下数据示例:
Cat1 Cat2 Number CALculaTION
a orange 1 1
a orange 2 2
a orange 3 3
a orange 4 4
a orange 5 5
a orange 6 6
a orange 7 7
a orange 8 8
a orange 9 9
a orange 10 10
a orange 11 11
a orange 12 12
a orange 13 13
b purple 1 1
b purple 2 2
b purple 3 3
b purple 4 4
b purple 5 5
b purple 6 6
b purple 7 7
b purple 8 8
b silver 1 9
b silver 2 10
b silver 3 11
b silver 4 12
b silver 5 13
b silver 6 14
b silver 7 15
解决方法
您在寻找:
import pandas as pd
df = pd.DataFrame({'Cat1': ['a','a','b','b'],'Cat2': ['orange','orange','purple','silver','silver']})
df['Number'] = df.groupby(['Cat1','Cat2']).cumcount()+1
df['CALCULATION'] = df.groupby('Cat1').cumcount()+1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。