微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python_Cumulative sum 基于两个条件

如何解决Python_Cumulative sum 基于两个条件

我正在尝试根据两种不同的条件在 python 中计算累积和

如您在附图中所见,Calculation 列将采用与 Number 列相同的值,只要 Cat1Cat2 列不改变。

一旦 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

enter image description here

enter image description here

解决方法

您在寻找:

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 举报,一经查实,本站将立刻删除。