Python Pandas to_datetime函数,输出不稳定
我的数据框有一列“Date”,属于object类型,但我想将其转换为时间序列。所以我使用pd.to_datetime函数。此函数正在转换数据类型,但输出不稳定 代码: 现在仔细观察输出并查看列Date和TS。它应该是相同的,但在某些情况下,它是不同的 输出: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 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')