我有一个时间序列的测量DataFrame,每30分钟加盖一次(yyyy / mm / dd 00:30:00,yyyy / mm / dd 01:00:00等),我只是想做一个通过丢弃半小时测量来简单地重新采样,并且仅保持每小时测量,这可以通过每隔一行丢弃来完成。有关如何执行此操作的任何建议。
答案 0 :(得分:1)
要删除所有其他行,保留第一行,请使用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