首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复同一列中datetime.datetime和datetime.time对象混乱的Excel导入

问如何修复同一列中datetime.datetime和datetime.time对象混乱的Excel导入
EN

Stack Overflow用户
提问于 2021-01-28 18:42:34
回答 1查看 36关注 0票数 1

我必须使用pd.read_excel()将多个Excel文件读入到pandas数据框中。Excel文件有一个包含日期的列和一个包含时间(HH:MM:SS)的列。在pandas df中,time-column被解释为datetime.time,但是当时间是午夜00:00:00时,它被解释为1899-12-30T00:00:00.000Z,这是一个datetime.datetime。

代码语言:javascript
复制
|  Excel   |         pandas df        | type in pandas df |
|----------|--------------------------|-------------------|
| 23:30:00 | 23:30:00                 | datetime.time     |
| 23:45:00 | 23:45:00                 | datetime.time     |
| 00:00:00 | 1899-12-30T00:00:00.000Z | datetime.datetime |
| 00:15:00 | 00:15:00                 | datetime.time     |

我如何强制熊猫读取整个time-column作为time或datetime (我不关心哪个,我只希望它们都是一样的)?

我最后需要的是一个datetime-column (不能是索引,所以没有"parse Date“),我只是简单地组合了Date-和Time-column。不幸的是,我不知道是怎么回事,因为Time-column中的time和datetime组合混乱。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-28 19:06:32

您可以将列转换为字符串,使用pd.to_datetime解析为pandas datetime,并可选择再次使用strftime将其格式化为HH:MM:SS字符串。例如,假设“time”是有问题的列,

代码语言:javascript
复制
df['time'] = pd.to_datetime(df['time'].astype(str)).dt.strftime('%H:%M:%S')

例如会给你

代码语言:javascript
复制
df
       time
0  23:30:00
1  23:45:00
2  00:00:00
3  00:15:00

您还可以指定在pd.read_excel调用中使用关键字将列直接作为字符串导入,例如dtype={'time': str}。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65935466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档