如何通过每隔一行丢弃(每30分钟丢弃一次测量值)来对数据帧重新采样



我有一个测量数据帧的时间序列,每30分钟打一次时间戳(yyyy/mm/dd 00:30:00,yyyy/mm/dd01:00:00等等),我只想通过删除半小时的测量来进行简单的重新采样,只保留每小时的测量,这可以通过每隔一行删除一次来完成。关于如何做到这一点的任何建议。

要每隔一行删除一行,保留第一行,请使用df.iloc[::2]

要每隔一行删除一行,请从第二行开始,使用df.iloc[1::2]


或者,由于时间序列ts具有DatetimeIndex,您可以使用ts.index.minute == 0来选择分钟数等于0:的行

In [146]: ts = pd.Series(1, index=pd.date_range('2000-1-1', periods=10, freq='30T'))
In [147]: ts
Out[147]: 
2000-01-01 00:00:00    1
2000-01-01 00:30:00    1
2000-01-01 01:00:00    1
2000-01-01 01:30:00    1
2000-01-01 02:00:00    1
2000-01-01 02:30:00    1
2000-01-01 03:00:00    1
2000-01-01 03:30:00    1
2000-01-01 04:00:00    1
2000-01-01 04:30:00    1
Freq: 30T, dtype: int64
In [148]: ts.loc[ts.index.minute == 0]
Out[148]: 
2000-01-01 00:00:00    1
2000-01-01 01:00:00    1
2000-01-01 02:00:00    1
2000-01-01 03:00:00    1
2000-01-01 04:00:00    1
Freq: 60T, dtype: int64

最新更新