gpt4 book ai didi

python - 按时间范围选择 DataFrame 行

转载 作者:行者123 更新时间:2023-12-01 07:21:02 26 4
gpt4 key购买 nike

我需要从特定行中选择 +- 1sec 的行(标记为 to_pick)

我可以用循环来做到这一点,但我正在寻找更优雅的方式

import pandas as pd
import numpy as np
N = 1000
tidx = pd.date_range('2019-07-01 09:30:00', periods=N, freq='S')
np.random.seed(3)
data = np.random.randn(N)
ts = tidx + pd.to_timedelta(pd.np.random.randn(N), unit='s')

df = pd.DataFrame({'Time': ts, 'to_pick': pd.np.random.randn(N) > 0.98, 'start': ts - pd.to_timedelta(1, 's'), 'end': ts + pd.to_timedelta(1, 's')})
df.loc[~df['to_pick'], 'start'] = pd.np.nan
df.loc[~df['to_pick'], 'end'] = pd.np.nan

我正在寻找类似的东西

 df['Time'].between(df['start', df['end'])

这将结合条件

最佳答案

如果我理解正确的话,当to_pick = true<时,您希望选择Timestartend之间的行:

start = df.query('to_pick')['start'].values
end = df.query('to_pick')['end'].values
t = df['Time'].values[:, None]

df.loc[np.any((start <= t) & (t <= end), axis=1)]

关于python - 按时间范围选择 DataFrame 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57702953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com