除去每个列以外的所有Pandas行最近的小时开始

时间:2018-04-24 00:51:51

标签: pandas

我有一个框架,df:

Date A B C  
x    1 1 1
y    1 1 1
z    1 1 1

“日期”列是我的索引,所有时间戳都是随机时间到第二级。我想删除数据框中的所有行,除了最接近新小时开始的行。

例如,如果12/15/16 15:16:12是该日期15小时内最早的行,我希望删除时间戳大于该戳记的所有其他行。然后,我希望下一个小时重复该过程,依此类推。

这是否可以在熊猫中快速实现?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以在groupby

之后使用headsort_index
df.sort_index().groupby(df.index.strftime('%Y-%m-%d %H')).head(1)
Out[83]: 
                     A 
Date                   
2016-12-15 15:16:12   1

数据输入

df
Out[84]: 
                     A 
Date                   
2016-12-15 15:16:12   1
2016-12-15 15:19:12   1
2016-12-15 15:56:12   1