【问题标题】:How to filtering datetime column for hours interval (just hours) in pandas如何在熊猫中过滤日期时间列的小时间隔(仅小时)
【发布时间】:2020-02-07 07:16:20
【问题描述】:

我有一个如下的数据框:

datetimecolumn      valuecolumn
2017-01-03 01:00    17
2017-01-04 02:55    4
2017-01-04 05:55    4
2017-01-04 12:55    9
2017-01-04 16:55    88
2017-01-05 17:53    1
2017-01-06 10:22    74
2017-01-06 15:22    111

现在我只需要时间在 12:00 到 18:00 之间的行。 那将是:

datetimecolumn      valuecolumn
2017-01-04 12:55    9
2017-01-04 16:55    88
2017-01-05 17:53    1
2017-01-06 15:22    111

如何应用该过滤器?

【问题讨论】:

    标签: python pandas dataframe datetime


    【解决方案1】:

    我假设您不想更改列datetimecolumn 的格式,因此将其转换为日期时间并分配给s。从其floor('D') 中减去s 以仅获得时间部分并将它们与between 进行比较以创建布尔掩码m。最后,使用mdf进行切片

    s = pd.to_datetime(df.datetimecolumn)
    m = (s - s.dt.floor('D')).between(pd.Timedelta('12:00:00'), pd.Timedelta('18:00:00'))
    
    df.loc[m]
    
    Out[190]:
         datetimecolumn  valuecolumn
    3  2017-01-04 12:55            9
    4  2017-01-04 16:55           88
    5  2017-01-05 17:53            1
    7  2017-01-06 15:22          111
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-26
      • 2017-06-16
      • 2021-05-30
      • 1970-01-01
      • 2020-06-24
      • 2016-09-04
      • 2019-06-27
      • 1970-01-01
      相关资源
      最近更新 更多