【发布时间】:2019-12-09 06:23:00
【问题描述】:
我的数据框 df_events 中有一个名为“程序日期时间”的列。我已经使用 df_events.ProgramDateTime.dt.date 和 df_events.ProgramDateTime.dt.time 成功地为 EventDate 和 EventTime 创建了单独的列。
当我尝试选择两个日期之间的记录时,出现了我的问题。无论我尝试什么,我似乎都会遇到各种类型错误。
我是一个相对较新的 Python/pandas 用户,最近才熟悉数据框。我正在使用 Python3.7。
我尝试过使用 strptime,甚至只是尝试根据原始列 ProgramDateTime 选择记录。
我也在用 Sublime Text 写这段代码
import pandas as pd, numpy as np
from datetime import datetime
File_Path = 'path'
Event_csv = 'file.csv'
df_event = pd.read_csv(File_Path+Event_csv)
# Indicate analysis period
StartDate = datetime.strptime('2018-08-08', '%Y-%m-%d')
EndDate = datetime.strptime('2019-07-01', '%Y-%m-%d')
# Change appropriate column in Events dataframe to make sure in Datetime format.
df_event['ProgramDateTime'] = pd.to_datetime(df_event['ProgramDateTime'])
#Create separate columns for Event Date and Time in dataframe
df_event['EventDate'], df_event['EventTime'] = df_event.ProgramDateTime.dt.date, df_event.ProgramDateTime.dt.time
# Create dataframe of programs occurring only during analysis period
df_event_ap = df_event[df_event['EventDate']>=StartDate and df_event['EventDate']<=EndDate]
print(df_event_ap.dtypes)
print(df_even_ap.head(11))
我希望看到一个新的数据框 df_events_ap,其中仅包含 StartDate 和 EndDate 之间的那些记录。
相反,问题发生在 Python 应该选择记录时(最后一个注释 (#) 行下方的代码。)
我收到此错误:
TypeError: 无法将 datetime.datetime 与 datetime.date 进行比较
【问题讨论】:
-
能否请您编辑您的问题,以便阅读您的代码。