我正在尝试在一个日期范围内选择几行熊猫数据。数据从Excel中上传,数据自动保存为datetime.time,这在与datetime.datetime相比时会造成问题。
我尝试使用datetime.time将datetime.datetime转换为pd.to_datetime,但它没有工作,可能是因为它在DF中。在读取列时,我尝试将其设置为datetime.datetime。我试着在阅读时转换为datetime.datetime。这些都不管用。列名为Sub_End,它只是一个5位数的日期格式,就像42636是2016年9月23日。
以下是我所做的一些上传尝试:
Subadvisory_Advisor_Fires=pd.read_excel('SOLO_Advisor_Data.xlsx',sheetname='Advisor_Fires', dtype={'Sub_End': date})它读取文件时没有问题,但列仍然是datetime.time。
Subadvisory_Advisor_Fires=pd.read_excel('SOLO_Advisor_Data.xlsx',sheetname='Advisor_Fires', converters= {'Sub_End': pd.to_datetime})我在这个问题上遇到了一个错误: TypeError:不可转换为日期时间
Subadvisory_Advisor_Fires=pd.read_excel('SOLO_Advisor_Data.xlsx',sheetname='Advisor_Fires', dtype={'Sub_End': datetime.datetime})它读取文件时没有问题,但列仍然是datetime.time。
出现错误的代码是:
Advisor_Fires=Subadvisory_Advisor_Fires
Start_Datetime = datetime.datetime(2016, 12, 31)
End_Datetime = datetime.datetime(2018, 12, 31)
Advisor_Fires = Advisor_Fires[(Advisor_Fires['Sub_End']).between(Start_Datetime, End_Datetime)]我得到的错误是:
TypeError: can't compare datetime.time to datetime.datetime我只是试图将行限制在这两个日期之间的一个行中。我尝试过的任何内容都不允许将Excel文件中的日期正确地读取为日期。
发布于 2019-07-01 13:53:11
我肯定有更简单的方法,但我能做到
Subadvisory_Advisor_Fires=pd.read_excel('SOLO_Advisor_Data.xlsx',sheetname='Advisor_Fires', converters={'Sub_End':str})
Year = Subadvisory_Advisor_Fires['Sub_End'].str.slice(0, 4)
Month = Subadvisory_Advisor_Fires['Sub_End'].str.slice(5, 7)
Day = Subadvisory_Advisor_Fires['Sub_End'].str.slice(8, 10)
Year = pd.to_numeric(Year, errors='coerce')
Month = pd.to_numeric(Month, errors='coerce')
Day = pd.to_numeric(Day, errors='coerce')
Dates = pd.to_datetime((Year*10000+Month*100+Day).apply(str),format='%Y%m%d')
Subadvisory_Advisor_Fires['Sub_End_Converted'] = Dateshttps://stackoverflow.com/questions/56812871
复制相似问题