我创建了一个测试数据框:
TIMESTAMP Amount
0 01/01/2019 00:00 101.0
1 01/01/2019 01:00 102.0
2 01/01/2019 02:00 103.0
3 01/05/2019 01:00 104.0
4 02/02/2020 00:00 105.0
5 01/01/2021 00:00 106.0
6 01/01/2021 01:00 107.0
7 01/01/2021 02:00 108.0
8 01/02/2021 01:00 109.0
请注意,TIMESTAMP 列是 object 类型的(实际上它包含字符串)。
当您使用“/”作为分隔符时,我假设使用美国日期格式,即 mm/dd/yyyy。
第一步是将TIMESTAMP列转换为datetime类型:
df.TIMESTAMP = pd.to_datetime(df.TIMESTAMP)
如果您现在打印 df,它将包含:
TIMESTAMP Amount
0 2019-01-01 00:00:00 101.0
1 2019-01-01 01:00:00 102.0
2 2019-01-01 02:00:00 103.0
3 2019-01-05 01:00:00 104.0
4 2020-02-02 00:00:00 105.0
5 2021-01-01 00:00:00 106.0
6 2021-01-01 01:00:00 107.0
7 2021-01-01 02:00:00 108.0
8 2021-01-02 01:00:00 109.0
(这是 Pandas 格式化时间戳的方式)。
现在,要获取预期日期时间范围内的行,请运行:
result = df.query('TIMESTAMP.between("2019-01-01 01:00", "2021-01-01 01:00")')
请注意,虽然 TIMESTAMP 列现在是 datetime 类型,
您可以将日期时间指定为 字符串。
结果是:
TIMESTAMP Amount
1 2019-01-01 01:00:00 102.0
2 2019-01-01 02:00:00 103.0
3 2019-01-05 01:00:00 104.0
4 2020-02-02 00:00:00 105.0
5 2021-01-01 00:00:00 106.0
6 2021-01-01 01:00:00 107.0