使用循环在数据框单列中查找多个值

1 投票
1 回答
42 浏览
提问于 2025-04-14 16:31

我刚接触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

撰写回答