我必须使用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。
| 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组合混乱。
发布于 2021-01-28 19:06:32
您可以将列转换为字符串,使用pd.to_datetime解析为pandas datetime,并可选择再次使用strftime将其格式化为HH:MM:SS字符串。例如,假设“time”是有问题的列,
df['time'] = pd.to_datetime(df['time'].astype(str)).dt.strftime('%H:%M:%S')例如会给你
df
time
0 23:30:00
1 23:45:00
2 00:00:00
3 00:15:00您还可以指定在pd.read_excel调用中使用关键字将列直接作为字符串导入,例如dtype={'time': str}。
https://stackoverflow.com/questions/65935466
复制相似问题