我正在尝试根据数据框列之一中的日期来过滤熊猫列。例如,我有一个名为“日期”的列,该列已使用
转换为日期时间df['Date'] = pd.to_datetime(df['Date'])
例如以2019-06-01格式放置它。现在,我可以在该列上执行过滤器,因此,如果我只想获取6月的日期,则可以
df[(df['Date'] >= '2019-06-01') & (df['Date'] <= '2019-06-30')]
这很好,将日期时间与字符串进行比较,我假设熊猫自动将其转换为日期时间以进行比较。
但是,一旦我将比较字符串分配给一个变量,这就会停止工作,所以如果我这样做
start = '2019-06-01'
end = '2019-06-30'
df[(df['Date'] >= start) & (df['Date'] <= end)]
我收到一个错误:TypeError:dtype = datetime64 [ns]和str之间的无效比较
关于为什么会发生这种情况的任何想法?
答案 0 :(得分:1)
我使用 Pandas 版本 0.25 和 Python 版本 3.7.0 。
我检查了您的代码:
66
得到正确的结果(没有错误)。
如果您使用的是 Python 或 Pandas 的某些旧版本,请考虑对其进行升级。
我还检查了其他代码变体:
“边界”值到日期时间的转换:
byte3
之间的用法,两个参数都作为 string s:
[0] = 65
也获得正确的结果。检查您的安装 现在和升级后(如果您决定这样做的话)。