我有一个数据集,如下所示:
ClientID Date Total sales Cumulative Sales
0 A 01-01-2000 100 300
1 A 01-02-2000 100 0
2 A 01-03-2000 100 0
3 B 01-01-2000 50 100
4 B 01-02-2000 50 0
5 C 01-01-2000 70 210
6 C 01-02-2000 70 0
7 C 01-03-2000 70 0
8 D 01-01-2000 20 40
9 D 01-02-2000 20 0
字符串
我想找出一种方法来创建Cumulative Sales
列,这将是每个唯一ClientID
的第一行的Total sales
和其余的0
的总和。
我在excel中找到了解决方案,创建了一个新的列R来计算第一个不同的值,然后使用IF(SUMIF)
函数计算总和:
=IF(COUNTIFS($F$2:$F8, $F8)=1, SUMIF($F$2:$F$1065, R8, $P$2:$P$1065), "0")
型
2条答案
按热度按时间suzh9iv81#
对于
Series.duplicated
的重复值和GroupBy.transform
的第一个值集sum
,使用numpy.where
和set0
by mask:字符串
sdnqo3pr2#
使用
groupby.transform
和mask
作为基于duplicated
ID的非第一个值:字符串
输出量:
型