按字符串日期过滤pandas中的数据



我有一个DataFrame,看起来像这样:

tbody> <<tr>
日期 参数
2010-01-02某个值
2010-01-03某个值
2010-01-04某个值
2011-01-02某个值
2011-01-03某个值
2011-01-04某个值
2012-01-02某个值
2012-01-03某个值
2012-01-04某个值

DataFrame.query期望您引用列名;df.query('Date < limit_date')正在尝试查询'Date'列中的值小于'limit_date'列中的值的行。(它怎么知道'Date'是一个列,但limit_date是一个变量,假设你引用它们类似?)

为了区分列和环境变量,您需要在环境变量之前添加@

df.query('Date < @limit_date')
#        Date
#0 2010-01-01
#1 2010-01-02
#2 2010-01-03
#3 2010-01-04

你的第一次尝试:df[df['Date'] < limit_date]在技术上是正确的,应该工作。很可能,您对DataFrame应用了先前的筛选器并覆盖了结果,因此现在当您应用此筛选器时,结果是空的DataFrame。刷新内核并从头开始。


示例数据
import pandas as pd
df = pd.DataFrame({'Date': pd.date_range('2010-01-01', freq='D', periods=20)})
limit_date = '2010-01-05'

最新更新