TypeError:无法将类型“时间戳"与类型“日期"进行比较
问题描述:
问题出在第22行:
if start_date <= data_entries.iloc[j, 1] <= end_date:
我想将start_date
和end_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)]
阅读此文章