gpt4 book ai didi

excel - 将日期从 Excel 文件转换为 pandas

转载 作者:行者123 更新时间:2023-12-03 00:50:13 24 4
gpt4 key购买 nike

我正在导入 Excel 文件,其中“日期”列有不同的书写方式:

      Date
13/03/2017
13/03/2017
13/03/2017
13/03/2017
10/3/17
10/3/17
9/3/17
9/3/17
9/3/17
9/3/17

导入到 pandas:

df = pd.read_excel('data_excel.xls')
df.Date = pd.to_datetime(df.Date)

结果:

                     Date
13/03/2017
64 13/03/2017
65 13/03/2017
66 13/03/2017
67 2017-10-03 00:00:00
68 2017-10-03 00:00:00
69 2017-09-03 00:00:00
70 2017-09-03 00:00:00
71 2017-09-03 00:00:00
72 2017-09-03 00:00:00

这意味着 pandas 没有正确解析日期和时间:

10/3/17 -> 2017-10-03

当我尝试指定格式时:

df.Date = pd.to_datetime(df.Date, format='%d%m%Y')

收到错误:

ValueError: time data u'13/03/2017' does not match format '%d%m%Y' (match)

问题:

如何将 Excel 文件中的日期和时间正确导入到 pandas?

最佳答案

新答案:

实际上,pd.to_datetime 有一个 dayfirst 关键字参数,在这里很有用:

df.Date = pd.to_datetime(df.Date,dayfirst=True)

结果:

>>> df.Date
0 2017-03-13
1 2017-03-13
2 2017-03-13
3 2017-03-13
4 2017-03-10
5 2017-03-10
6 2017-03-09
7 2017-03-09
8 2017-03-09
9 2017-03-09
Name: Date, dtype: datetime64[ns]
<小时/>

旧答案:

使用第三方模块dateutil它可以处理这些类型的变化。它有一个 dayfirst 关键字参数,在这里很有用:

import dateutil

df = pd.read_excel('data_excel.xls')
df.Date = df.Date.apply(lambda x: dateutil.parser.parse(x,dayfirst=True))

结果:

>>> df.Date
0 2017-03-13
1 2017-03-13
2 2017-03-13
3 2017-03-13
4 2017-03-10
5 2017-03-10
6 2017-03-09
7 2017-03-09
8 2017-03-09
9 2017-03-09
Name: Date, dtype: datetime64[ns]

关于excel - 将日期从 Excel 文件转换为 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43023226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com