我有一个数据框,该框使用二进制指标来反映客户在特定月份内是否还活着。如果客户是有生命的,则为1,否则为0。数据帧如下所示:
const { merge } = require("webpack-merge");
const { join } = require("path");
// And so on...
当一个客户活着时,他们在特定月份获得1。同样,如果他们居住在下个月(或任何一个月),则该月也将得到1。
我想在数据框的末尾添加一列,以计算当月居住的客户数量,也算上个月的居住人数。
我已经使用这种方法在excel中进行了计算,但是我不清楚如何在Python中进行此操作。 这是我使用的excel公式。
Customer A B C D E F G H I J
11/30/2015 1 0 1 0 0 1 1 0 0 0
12/31/2015 0 1 0 1 0 1 1 0 0 1
1/31/2016 0 0 0 0 0 1 1 0 0 1
2/29/2016 1 1 1 1 1 1 0 1 1 1
3/31/2016 1 1 0 1 1 0 1 1 0 1
4/30/2016 0 1 1 1 0 1 1 1 0 1
5/31/2016 1 1 1 1 1 1 0 1 0 1
结果数据框如下所示:
COUNTIFS(B1:TE1,1,B2:TE2,1)
答案 0 :(得分:3)
您可以使用shift
((df.shift()==1)&(df.shift()==df)).sum(1)
Out[80]:
0 0
1 2
2 3
3 2
4 6
5 5
6 6
dtype: int64
答案 1 :(得分:2)
使用rolling
:
>>> (df.rolling(2).sum() == 2).sum(1)
0 0
1 2
2 3
3 2
4 6
5 5
6 6
dtype: int64
# df['Customers_live_consecutive_months'] = (df.rolling(2).sum() == 2).sum(1)