使用循环在数据框单列中查找多个值
我刚接触Python,正在处理一个有几百万行的数据表。我有一组时间序列数据,数值会波动,我需要找出某些特定的行。具体来说,我想找出每个数值超过50的时刻。我知道我需要写一个循环,来找出当前值大于50而前一个值小于等于50的行,但我在语法上有点困惑。
此外,我还需要把这些行提取出来,建立一个新的数据表。
任何指导都非常感谢!
我已经能用下面的代码找出第一个大于50的值,但我需要继续遍历这一列。
test = test_df.sort_values(by=['Time','Value'])
x = test.loc[test['Value'] > 50].iloc[0]
1 个回答
0
如果我没理解错的话,你可以用 pd.Series.shift()
来创建一个掩码:
mask = (df["Value"] > 50) & (df["Value"].shift() <= 50)
print(df[mask])
打印结果:
Time Value
4 2024_03_05_13_25_53 62
11 2024_03_05_13_26_00 67