Python 如何比较pandas中的两行(跨所有列),并对输出求和?
我有这样的数据-Python 如何比较pandas中的两行(跨所有列),并对输出求和?,python,pandas,churn,Python,Pandas,Churn,我有这样的数据- User1 User2 User3 User4 User5 User6 User7 User8 w1 1 1 1 1 0 1 1 1 w2 0 1 0 0 1 1 1 1 w3 0 0 1 1 1 1 1 1 w4
User1 User2 User3 User4 User5 User6 User7 User8
w1 1 1 1 1 0 1 1 1
w2 0 1 0 0 1 1 1 1
w3 0 0 1 1 1 1 1 1
w4 1 1 1 0 0 0 0 1
w5 1 0 1 0 1 1 1 0
w6 1 1 1 1 1 1 1 1
Column
w1 n/a
w2 3
w3 1
w4 4
w5 2
w6 0
现在我想做的是每两个连续的星期比较一次,找出所有变化为1->0的情况
所以上述数据的输出应该是这样的-
User1 User2 User3 User4 User5 User6 User7 User8
w1 1 1 1 1 0 1 1 1
w2 0 1 0 0 1 1 1 1
w3 0 0 1 1 1 1 1 1
w4 1 1 1 0 0 0 0 1
w5 1 0 1 0 1 1 1 0
w6 1 1 1 1 1 1 1 1
Column
w1 n/a
w2 3
w3 1
w4 4
w5 2
w6 0
假设数据帧的名称是df,那么您可以通过
abs(df.diff()).sum(axis=1)
也可以这样做:
(df > df.shift(-1)).sum(axis=1)
我不明白,您是否在计算此输出中的更改位置或更改数量?这是可行的,但最终df与我想要的df相比上移了一行。用shift按我想要的方式得到它,谢谢!