Dataframe中的倒计时列

时间:2018-01-06 04:45:59

标签: pandas dataframe

我认为这是一个新问题,因为我在搜索中没有看到过这个问题。 是否可以在pandas数据框中创建倒计时?

我有一个列[A]显示1或0 1是事件发生的日期。 我喜欢创建一个B列,它在事件发生前4天显示倒计时到1,所以它将在事件当天显示5 4 3 2 1和1。

A  B  
0  0
0  0
0  5
0  4
0  3
0  2
1  1
0  0
0  0
0  0 

对此有何建议? :d

1 个答案:

答案 0 :(得分:1)

试试这个

s=df.A.iloc[::-1].eq(1).cumsum()

s=s.groupby(s).cumcount()+1

s.mask(s>5,0)
Out[121]: 
9    0
8    0
7    0
6    1
5    2
4    3
3    4
2    5
1    0
0    0
Name: A, dtype: int64
df['C']=s.mask(s>5,0)
df
Out[123]: 
   A  B  C
0  0  0  0
1  0  0  0
2  0  5  5
3  0  4  4
4  0  3  3
5  0  2  2
6  1  1  1
7  0  0  0
8  0  0  0
9  0  0  0