如何将Excel列读取为datetime.datetime而不是auto datetime.tim

2024-09-30 01:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试选择日期范围内数据框的行。数据框从Excel上载,日期自动保存为datetime.time,这在与datetime.datetime进行比较时会导致问题

我尝试使用pd.to_datetime将datetime.time转换为datetime.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:无法转换为datetime

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文件中的日期正确读取为日期


Tags: toreaddatadatetimetimexlsxexcelfires
1条回答
网友
1楼 · 发布于 2024-09-30 01:22:26

我相信有一个更简单的方法可以做到这一点,但我做到了

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'] = Dates

相关问题 更多 >

    热门问题