如何将Excel列作为DateTime.DateTime而不是Auto DateTime.Time读取

  • 本文关键字:DateTime Auto 读取 Time Excel python
  • 更新时间 :
  • 英文 :


我正在尝试在日期范围内选择熊猫数据框的行。数据框从Excel上传,并自动保存为DateTime.Time,这会在与DateTime.DateTime.DateTime.dateTime.DateTime.DateTime.DateTime.DateTime.DateTime中造成问题。

我尝试使用pd.to_datetime将dateTime.time转换为dateTime.datetime,但它不起作用,也许是因为它在DF中。我尝试将列设置为dateTime.datetime读取时。我尝试在阅读时尝试转换为datetime.datetime。这些都没有用。该列被命名为sub_end,它只是一个5位数字,带有日期格式,就像42636是9/23/2016。

这是我进行的一些上传尝试:

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

我敢肯定有一种更简单的方法可以做到这一点,但是我把它做起来

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

最新更新