TypeError:无法将类型“时间戳"与类型“日期"进行比较 [英] TypeError: Cannot compare type 'Timestamp' with type 'date'

查看:715
本文介绍了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)]

阅读此文章

这篇关于TypeError:无法将类型“时间戳"与类型“日期"进行比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆