【问题标题】:Filter Dataframe by Timestamp按时间戳过滤数据框
【发布时间】:2021-07-09 23:57:46
【问题描述】:

我有以下数据框df:

TimeStamp

2021-03-21 09:16:33
2021-03-21 09:17:06
2021-03-21 09:19:19
2021-04-13 12:20:32
2021-04-13 12:20:39

我想过滤数据框以仅获取过去 36 小时的交易;我尝试了以下代码,但我总是发现处理时间戳很麻烦。

import pandas as pd
from datetime import datetime

df = pd.read_excel(input_path)
now = datetime.now()
temp = df[now-df['TimeStamp'].astype('timedelta64[h]').iloc[-1] >= 24]

因此最终结果是:

TimeStamp

2021-04-13 12:20:32
2021-04-13 12:20:39

谢谢

【问题讨论】:

标签: python pandas datetime timestamp


【解决方案1】:

确保将TimeStamp 转换为to_datetime(),然后使用pd.Timedelta(hours=36)

df.TimeStamp = pd.to_datetime(TimeStamp)
df[df.TimeStamp > (now - pd.Timedelta(hours=36))]

您也可以使用parse_dates 加载excel,这样您就不必手动转换为日期时间:df = pd.read_excel(input_path, parse_dates=['TimeStamp'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    相关资源
    最近更新 更多