如何筛选数据帧以便每天在特定时间获得一次发生

我的数据集有一个 datetime 列,该列在多天内一天中的每一小时都有一个条目。例如:


123412,2020-03-26 12:00,

123412,2020-03-27 12:00,

123412,2020-03-27 09:00,

123412,2020-03-27 09:00,

123412,2020-03-27 15:00,

123412,2020-03-26 15:00,

123412,2020-03-27 11:00,

123412,2020-03-27 12:00,

该示例未排序,但正如我所说,一天中的每个小时都有一个条目。


我想过滤这些数据的方式是,例如,采取日期时间。然后,筛选器将返回以下行:2020-03-26 12:00

  • 2020-03-26 12:00

  • 2020-03-25 12:00

  • 2020-03-24 12:00

等等。


我尝试过这样的方法,但那不起作用。Grouperdf2 = df2.groupby(pd.Grouper(key=DATETIME, freq='D'))


我怎样才能做到这一点?谢谢


繁星coding
浏览 89回答 1
1回答

狐的传说

您可以按布尔索引和系列.dt.时间按时间筛选日期时间:print (df)        a                date   b0  123412 2020-03-26 12:00:00 NaN1  123412 2020-03-27 12:00:00 NaN2  123412 2020-03-27 09:00:00 NaN3  123412 2020-03-27 09:00:00 NaN4  123412 2020-03-27 15:00:00 NaN5  123412 2020-03-26 15:00:00 NaN6  123412 2020-03-27 11:00:00 NaN7  123412 2020-03-27 12:00:00 NaNd = '2020-03-26 12:00'df = df[df['date'].dt.time.eq(pd.Timestamp(d).time())]print (df)        a                date   b0  123412 2020-03-26 12:00:00 NaN1  123412 2020-03-27 12:00:00 NaN7  123412 2020-03-27 12:00:00 NaN如果只需要唯一的日期时间:d = '2020-03-26 12:00'df = df.drop_duplicates('date')df = df[df['date'].dt.time.eq(pd.Timestamp(d).time())]print (df)        a                date   b0  123412 2020-03-26 12:00:00 NaN1  123412 2020-03-27 12:00:00 NaN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python