如何执行此操作?
初始Df:
A B C D
0 0 1 0 0
1 1 1 1 1
2 0 0 1 1
3 0 1 0 1
4 1 1 0 0
5 1 1 1 0
最终Df:
A B C D Param1 Param2 Param3
0 0 1 0 0 0 0 0
1 1 1 1 1 3 1 0
2 0 0 1 1 0 2 2
3 0 1 0 1 1 1 1
4 1 1 0 0 1 1 1
5 1 1 1 0 1 2 0
基本上,我要做的是比较两个连续行上的值,并将这些比较的计数存储在新列中。
详细计算:对于第一行(索引0):Param1,Param2,Param3将等于0
IIUC:
shift = df.shift()
df['Param1'] = (df.eq(1) & shift.eq(0)).sum(1)
df['Param2'] = (df.eq(1) & shift.eq(1)).sum(1)
df['Param3'] = (df.eq(0) & shift.eq(1)).sum(1)
输出:
A B C D Param1 Param2 Param3
0 0 1 0 0 0 0.0 0.0
1 1 1 1 1 3 1.0 0.0
2 0 0 1 1 0 2.0 2.0
3 0 1 0 1 1 1.0 1.0
4 1 1 0 0 1 1.0 1.0
5 1 1 1 0 1 2.0 0.0