【问题标题】:Only return entries within the last hour仅返回最后一小时内的条目
【发布时间】:2022-01-06 18:28:03
【问题描述】:

我正在尝试过滤我的 csv 文件中的数据,以仅显示时间介于当前时间和前 1 小时之间的条目。

仅过滤CreatedAtID 的列后,数据如下所示:

                CreatedAt        ID
2021-11-26 09:36:05-08:00     99702
2021-11-26 07:21:36-08:00    645478
2021-11-25 09:34:00-08:00    204446
2021-11-25 00:19:08-08:00    394719
2021-11-24 23:08:15-08:00    769537
                              ...  
2016-01-22 12:16:28-08:00    278137
2016-01-22 10:55:31-08:00    374485
2016-01-22 09:55:22-08:00    807451
2016-01-21 12:23:36-08:00    346137
1969-12-31 16:00:01-08:00    883029
import pandas as pd
import datetime

df = pd.read_csv('file.csv', index_col='CreatedAt', parse_dates=['CreatedAt'])
sorted_df = df.sort_values(by=["CreatedAt"], ascending=False)
end_time= datetime.datetime.utcnow()
last_hour= end_time - datetime.timedelta(hours = 1)
filtered_dates = sorted_df.loc[last_hour]

print (filtered_dates)

当我打印filtered_dates 时,代码正确计算了两次之间的增量,但由于某种原因,它没有打印出我想要查看的全部数据。

任何帮助总是被感激的

【问题讨论】:

    标签: python pandas csv datetime delta


    【解决方案1】:

    试试:

    df = pd.read_csv('file.csv', index_col='CreatedAt', parse_dates=['CreatedAt'])
    sorted_df = df.sort_values(by=["CreatedAt"], ascending=False)
    end_time= datetime.datetime.utcnow()
    last_hour= end_time - datetime.timedelta(hours = 1)
    filtered_dates = sorted_df.set_index('CreatedAt').between_time(last_hour, end_time)
    

    df = pd.read_csv('file.csv', index_col='CreatedAt', parse_dates=['CreatedAt'])
    sorted_df = df.sort_values(by=["CreatedAt"], ascending=False)
    end_time= datetime.datetime.utcnow()
    last_hour= end_time - datetime.timedelta(hours = 1)
    time_window_mask = sorted_df["CreatedAt"].between(last_hour, end_time)
    filtered_dates = sorted_df[time_window_mask]
    

    【讨论】:

    • 我得到了你分享的内容:raise TypeError("Index must be DatetimeIndex") TypeError: Index must be DatetimeIndex
    • 已编辑我的提案
    • 我建议你使用 pd.Timestamp 而不是 Python 日期时间(尤其不是 utcnow !)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2014-05-01
    相关资源
    最近更新 更多