想象一下,我们有一个具有这种结构的Pandas Dataframe:
Date Value PercentageDifference
2018-04-08 13:40:00 0.001 0.000000
2018-04-08 13:41:00 5.000 4999.000000
2018-04-08 13:42:00 16.670 2.334000
2018-04-08 13:43:00 18.670 0.119976
如何只显示具有特定条件的不同数据帧行,例如,如果值= 0.001显示此行,而下一行显示该行:
Date Value PercentageDifference
2018-04-08 13:40:00 0.001 0.000000
2018-04-08 13:41:00 5.000 4999.000000
是否只有lambda解决方案,或者使用Pandas功能可以更轻松地完成它?
答案 0 :(得分:2)
尝试使用|
和shift
df[(df.Value==0.001)|(df.Value==0.001).shift()]
Out[414]:
Date Value PercentageDifference
0 2018-04-0813:40:00 0.001 0.0
1 2018-04-083:41:00 5.000 4999.0
答案 1 :(得分:1)
假设您的Dataframe名为df。
idx = df['Value'] == 0.001
包含值为== 0.001
的行idx_os = np.roll(idx, 1)
包含下一行(是的也是第一行,如果最后一行的值为== 0.001 - 请考虑一下,如果你想要或不这样做。
然后你的行包含
df[idx | idx_os]
答案 2 :(得分:1)
您可以使用np.where()获取Value=0.001
行的位置,然后查询此行和下一行。
idx = np.where([df['Value']==0.001][0])[0][0]
df.iloc[idx:idx+2]
输出:
Date Value Percentage Difference
2018-04-08 13:40:00 0.001 0.0
2018-04-08 13:41:00 5.000 4999.0