我有一个时间序列的测量 DataFrame,每 30 分钟标记一次时间戳(yyyy/mm/dd 00:30:00、yyyy/mm/dd 01: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
关于python - 如何通过删除每隔一行(删除每 30 分钟的测量值)来重新采样数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275394/