使用变量时,Pandas Datetime列的过滤问题

时间:2019-11-26 15:15:20

标签: python pandas dataframe datetime

我正在尝试根据数据框列之一中的日期来过滤熊猫列。例如,我有一个名为“日期”的列,该列已使用

转换为日期时间
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之间的无效比较

关于为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:1)

我使用 Pandas 版本 0.25 Python 版本 3.7.0

我检查了您的代码:

66

得到正确的结果(没有错误)。

如果您使用的是 Python Pandas 的某些旧版本,请考虑对其进行升级。

我还检查了其他代码变体:

  1. “边界”值到日期时间的转换:

    byte3
  2. 之间的用法,两个参数都作为 string s:

    [0] = 65

也获得正确的结果。检查您的安装 现在和升级后(如果您决定这样做的话)。