TypeError:无法将类型“时间戳"与类型“日期"进行比较

问题描述:

问题出在第22行:

if start_date <= data_entries.iloc[j, 1] <= end_date:

我想将start_dateend_date部分与data_entries.iloc[j, 1]进行比较,该部分正在访问熊猫数据帧的一列.我使用

where I want to compare the start_date and end_date portion to data_entries.iloc[j, 1] which is accessing a column of the pandas dataframe. I converted the column to datetime using,

data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y")

但是我不确定如何将其转换为 date .

But I am unsure how to convert it to date.

import pandas as pd
import datetime

entries_csv = "C:\\Users\\Pops\\Desktop\\Entries.csv"

data_entries = pd.read_csv(entries_csv)
data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y")

start_date = datetime.date(2018, 4, 1)
end_date = datetime.date(2018, 10, 30)

    for j in range(0, len(data_entries)):
        if start_date <= data_entries.iloc[j, 1] <= end_date:
             print('Hello')

这会将其转换为日期:

data_entries['VOUCHER DATE'] = pd.to_datetime(data_entries['VOUCHER DATE'], format="%m/%d/%Y").dt.date

但是我不建议这样过滤. 这要快得多

however i would not recommend filtering like this. this is much faster

data_entries[data_entries['VOUCHER DATE'].between(start_date, end_date)]

阅读此文章