数据:
event_date event
99652 2014-06-11 DX
2533 2014-08-01 DX
2534 2014-08-01 RX
0 2014-12-11 DX
293494 2015-06-16 RX
2020 2015-08-04 DX
2021 2015-08-04 RX
99653 2015-08-04 DX
1 2015-12-14 DX
如您所见,数据从最旧到最新排序。我想知道的是在第一个RX之前发生了多少个DX。
不确定如何以有效的方式执行此操作。
编辑:我应该提到我们需要检查第一个值是否不是DX。
答案 0 :(得分:3)
鉴于数据已订购,
df.reset_index().event.eq('RX').idxmax()
打印
2
选项2(快得多):
(df.event != 'RX').cumprod().sum()
编辑:根据更新,
(df.event == 'DX').cumprod().sum()
答案 1 :(得分:0)
结束搞清楚:
count = 0
for i in test.index.values:
if (test.loc[test.index.values[0],"event"] in ("NonVertFX", "VertFX", "PX", "RX")):
count = -1
print("first value is not DX")
break
if (test.loc[i,"event"] == "RX"):
break
count += 1
print(count)