如何根据条件-熊猫连续计算值的数量

时间:2020-02-27 18:34:06

标签: python pandas

我想计算一行中的元素数量,并根据前一个元素减去一个值。我可以在for循环中执行此操作,但是速度太慢。我想在“目标”列中每次出现0或2时都收取$ 7的费用,但如果先前的目标等于当前目标,则不收取。目标= 0的费用为$ 0,如果出现的新目标不是1或当前目标,则费用为$ 7。我的df中有目标,但我想计算费用。 df上的示例

输入:

df.head(10)

Target   Fee
1         0
1         0
1         0
0        -7
0         0
0         0
2        -7
2         0
1         0
2        -7



1 个答案:

答案 0 :(得分:1)

IIUC:

df['Fee'] = (df.Target.diff().ne(0) & df.Target.isin([0,2])) * (-7)

输出:

   Target  Fee
0       1    0
1       1    0
2       1    0
3       0   -7
4       0    0
5       0    0
6       2   -7
7       2    0
8       1    0
9       2   -7