为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星coding 2022-09-27 16:36:54
我的数据集有一个 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:002020-03-26 12:002020-03-25 12:002020-03-24 12:00等等。我尝试过这样的方法,但那不起作用。Grouperdf2 = df2.groupby(pd.Grouper(key=DATETIME, freq='D'))我怎样才能做到这一点?谢谢
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

您可以按布尔索引系列.dt.时间按时间筛选日期时间:

print (df)

        a                date   b

0  123412 2020-03-26 12:00:00 NaN

1  123412 2020-03-27 12:00:00 NaN

2  123412 2020-03-27 09:00:00 NaN

3  123412 2020-03-27 09:00:00 NaN

4  123412 2020-03-27 15:00:00 NaN

5  123412 2020-03-26 15:00:00 NaN

6  123412 2020-03-27 11:00:00 NaN

7  123412 2020-03-27 12:00:00 NaN


d = '2020-03-26 12:00'


df = df[df['date'].dt.time.eq(pd.Timestamp(d).time())]

print (df)

        a                date   b

0  123412 2020-03-26 12:00:00 NaN

1  123412 2020-03-27 12:00:00 NaN

7  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   b

0  123412 2020-03-26 12:00:00 NaN

1  123412 2020-03-27 12:00:00 NaN


查看完整回答
反对 回复 2022-09-27
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信