【发布时间】:2020-03-22 01:15:01
【问题描述】:
我正在尝试根据我的数据框列之一中的日期过滤熊猫列。例如,我有一列名为“日期”,已使用
转换为日期时间df['Date'] = pd.to_datetime(df['Date'])
以 2019-06-01 格式为例。现在我可以在列上执行过滤器,所以如果我只想在 6 月获得日期,我可以这样做
df[(df['Date'] >= '2019-06-01') & (df['Date'] <= '2019-06-30')]
这很好用,将日期时间与字符串进行比较,我假设 pandas 会自动将其转换为日期时间以执行比较。
但是,一旦我将比较字符串分配给变量,它就会停止工作,所以如果我这样做
start = '2019-06-01'
end = '2019-06-30'
df[(df['Date'] >= start) & (df['Date'] <= end)]
我收到一个错误:TypeError: Invalid comparison between dtype=datetime64[ns] and str
关于为什么会发生这种情况的任何想法?
【问题讨论】:
-
该错误表明在被比较的两列中,一列的类型为字符串,而另一列的类型为日期时间。因此,其中一列中可能有一个条目将其转换为字符串。
标签: python pandas dataframe datetime