【问题标题】:How to filter time with respect to date in pandas?如何在熊猫中过滤关于日期的时间?
【发布时间】:2021-05-30 17:10:52
【问题描述】:

我在 mysql 中有这些数据,我已经使用 read_sql 将其读入 pandas。数据:

    count    InTime         Day
0       1  19:10:14  2021-02-28
1       2  19:10:26  2021-02-28
2       3  19:10:47  2021-02-28
3       4  19:10:47  2021-02-28
4       1  20:06:53  2021-02-28
5       2  20:07:03  2021-02-28
6       3  20:07:23  2021-02-28
7       4  20:07:23  2021-02-28
8       1  10:32:57  2021-03-01
9       2  10:33:08  2021-03-01
10      3  10:33:28  2021-03-01
11      4  10:33:28  2021-03-01

我已将列转换为所需的日期时间格式。现在我想在 28 日 19:00:00 到 20:00:00 之间找到计数。我该怎么做?

【问题讨论】:

标签: python pandas datetime filtering


【解决方案1】:

您可以通过Series.betweenboolean indexing 中创建日期时间和过滤器:

df['datetime'] = pd.to_datetime(df['Day'] + ' ' + df['InTime'])

df1 = df[df['datetime'].between('2021-02-28 19:00:00', '2021-02-28 20:00:00')]
print (df1)
   count    InTime         Day            datetime
0      1  19:10:14  2021-02-28 2021-02-28 19:10:14
1      2  19:10:26  2021-02-28 2021-02-28 19:10:26
2      3  19:10:47  2021-02-28 2021-02-28 19:10:47
3      4  19:10:47  2021-02-28 2021-02-28 19:10:47

如果只需要过滤count 列,请使用DataFrame.loc

s = df.loc[df['datetime'].between('2021-02-28 19:00:00', '2021-02-28 20:00:00'), 'count']
print (s)
0    1
1    2
2    3
3    4
Name: count, dtype: int64

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    相关资源
    最近更新 更多