Python 使用Pandas query()筛选时间戳列上的数据帧

Python 使用Pandas query()筛选时间戳列上的数据帧,python,pandas,dataframe,timestamp,Python,Pandas,Dataframe,Timestamp,我正在尝试使用字符串和时间戳列上的函数query()筛选数据帧: df.query('Timestamp < "2020-02-01"') 有人知道如何将query()与日期时间列一起使用吗?列名将内置类型时间戳隐藏起来。第一步,可以使用以下命令将列重命名为其他名称: 然后,以下内容将为datetime提供技巧: df.query('MyTimestamp < 20200201') df.query('MyTimestamp

我正在尝试使用字符串和时间戳列上的函数
query()
筛选数据帧:

df.query('Timestamp < "2020-02-01"')

有人知道如何将
query()
与日期时间列一起使用吗?

列名将内置类型
时间戳
隐藏起来。第一步,可以使用以下命令将列重命名为其他名称:

然后,以下内容将为datetime提供技巧:

df.query('MyTimestamp < 20200201')
df.query('MyTimestamp<20200201')

或者,如果要使用时间戳查询数据帧:

df.query('MyTimestamp < @ts("20200201T071320")' 
df.query('MyTimestamp<@ts(“20200201T071320”)'

我认为错误消息提供了线索-时间戳是一种类型,无法与str或datetime进行比较。运行测试并将时间戳名称更改为其他名称,然后查看代码是否有效。df['Timestamp']是熊猫允许的,这就是它工作的原因,因为它不被视为类型,而是列。阅读警告框了解更多信息:谢谢,这就是问题所在。重命名列后它工作。
df.loc[df['Timestamp'] < "2020-02-01"]
Out[4]:                 
     Timestamp  Error  ...  ToD  Day_Night
0    2020-01-17 00:00:00      0  ...    0      Night  
1    2020-01-17 00:10:00      0  ...    0      Night
2    2020-01-17 00:20:00      0  ...    0      Night
3    2020-01-17 00:30:00      0  ...    0      Night 
4    2020-01-17 00:40:00      0  ...    0      Night 
2154 2020-01-31 23:10:00      0  ...   23      Night  
2155 2020-01-31 23:20:00      0  ...   23      Night 
2156 2020-01-31 23:30:00      0  ...   23      Night
2157 2020-01-31 23:40:00      0  ...   23      Night 
2158 2020-01-31 23:50:00      0  ...   23      Night
[2159 rows x 37 columns]
df.rename(columns={"Timestamp": "MyTimestamp"})
df.query('MyTimestamp < 20200201')
df.query('MyTimestamp < @ts("20200201T071320")'