Python Pandas to_datetime函数,输出不稳定

Python Pandas to_datetime函数,输出不稳定,python,python-3.x,pandas,datetime,Python,Python 3.x,Pandas,Datetime,我的数据框有一列“Date”,属于object类型,但我想将其转换为时间序列。所以我使用pd.to_datetime函数。此函数正在转换数据类型,但输出不稳定 代码: 现在仔细观察输出并查看列Date和TS。它应该是相同的,但在某些情况下,它是不同的 输出: Date TS Day 0 01-12-2017 2017-01-12 3 1430 01-12-2017 2017-01-12 3 2860 02-12-201

我的数据框有一列“Date”,属于object类型,但我想将其转换为时间序列。所以我使用pd.to_datetime函数。此函数正在转换数据类型,但输出不稳定

代码:

现在仔细观察输出并查看列Date和TS。它应该是相同的,但在某些情况下,它是不同的

输出:

        Date            TS     Day
0       01-12-2017  2017-01-12  3
1430    01-12-2017  2017-01-12  3
2860    02-12-2017  2017-02-12  6
4290    03-12-2017  2017-03-12  6
5720    04-12-2017  2017-04-12  2
7150    05-12-2017  2017-05-12  4
8580    07-12-2017  2017-07-12  2
10010   08-12-2017  2017-08-12  5
11440   09-12-2017  2017-09-12  1
12870   09-12-2017  2017-09-12  1
14300   10-12-2017  2017-10-12  3
15730   11-12-2017  2017-11-12  6
17160   12-12-2017  2017-12-12  1
18590   13-12-2017  2017-12-13  2
20020   14-12-2017  2017-12-14  3
21450   15-12-2017  2017-12-15  4
22880   16-12-2017  2017-12-16  5
24310   17-12-2017  2017-12-17  6
25740   18-12-2017  2017-12-18  0
27170   19-12-2017  2017-12-19  1
28600   20-12-2017  2017-12-20  2
30030   21-12-2017  2017-12-21  3
31460   22-12-2017  2017-12-22  4
32890   23-12-2017  2017-12-23  5
34320   24-12-2017  2017-12-24  6
35750   25-12-2017  2017-12-25  0
37180   26-12-2017  2017-12-26  1
38610   27-12-2017  2017-12-27  2
40040   28-12-2017  2017-12-28  3
41470   29-12-2017  2017-12-29  4
42900   30-12-2017  2017-12-30  5
44330   31-12-2017  2017-12-31  6
45760   01-01-2018  2018-01-01  0
47190   02-01-2018  2018-02-01  3
48620   03-01-2018  2018-03-01  3
50050   04-01-2018  2018-04-01  6
51480   05-01-2018  2018-05-01  1
52910   06-01-2018  2018-06-01  4
54340   07-01-2018  2018-07-01  6
55770   08-01-2018  2018-08-01  2
57200   09-01-2018  2018-09-01  5
58630   10-01-2018  2018-10-01  0
60060   11-01-2018  2018-11-01  3
61490   12-01-2018  2018-12-01  5
62920   13-01-2018  2018-01-13  5
64350   14-01-2018  2018-01-14  6
65780   15-01-2018  2018-01-15  0
67210   16-01-2018  2018-01-16  1

哎呀!看起来你的约会是从第一天开始的。你必须告诉熊猫们相应地处理这件事。在调用
以_datetime
时,将
dayfirst
标志设置为
True

x1['TS'] = pd.to_datetime(x1['Date'], dayfirst=True)  

当您在没有指定格式的情况下输入时间时,Pandas会尝试以一种天真的方式猜测格式。它假设你的一天实际上是你的一个月,但当它看到它是第13个月时,它意识到不可能是月份列并切换

以下应该可以,但我喜欢@cᴏʟᴅsᴘᴇᴇᴅ's的解决方案更好,因为只需升起dayfirst标志就更简单了

要解决此问题,请向To_datetime函数提供当前格式

文档给出了以下示例,您可以根据自己的情况对其进行修改:

pd.to_datetime('13000101', format='%Y%m%d', errors='ignore')
详情如下:

时间格式约定(即%Y的含义等)如下所示:

pd.to_datetime('13000101', format='%Y%m%d', errors='ignore')