我有这个DataFrame,我需要编写一个条件来仅提取已加星标的能量。
Energy Time
0 80
0 82
0 84
0 86
287** 88
287 90
287 91
287 92
0 94
0 96
0 98
302** 100
302 102
302 104
302 106
0 108
0 110
当Energy(t)> 0& 0时,想法是接受能量值。能量(T-1)== 0。
我尝试创建for循环
set_time=set(df.loc[:,'Time'])
list_time=list(set_time)
for t, time in enumerate(list_time):
if df['Energy'][t] > 0 & df['Energy'][t-1]==0:
print(df['Energy'],t)
但我得到错误。非常感谢提前
答案 0 :(得分:1)
有一种方法
v=df.eq(0).Energy.cumsum()
df.groupby(df.eq(0).Energy.cumsum()).head(2).loc[df.groupby(v).Energy.filter(lambda x : x.ne(0).any()).index].dropna()
Out[1538]:
Energy Time
3 0.0 86.0
4 287.0 88.0
10 0.0 98.0
11 302.0 100.0