【问题标题】:pandas datetime giving wrong output熊猫日期时间给出错误的输出
【发布时间】:2021-01-10 10:09:25
【问题描述】:

我正在使用带有日期列的 pandas 数据框。我已经使用 pandas pd.to_datetime 将此列的 dtype 从对象转换为日期时间:

输入:

0     30-11-2019
1     31-12-2019
2     31-12-2019
3     31-12-2019
4     31-12-2019
5     21-01-2020
6     27-01-2020
7     01-02-2020
8     01-02-2020
9     03-02-2020
10    15-02-2020
11    12-03-2020
12    13-03-2020
13    31-03-2020
14    31-03-2020
15    04-04-2020
16    04-04-2020
17    04-04-2020
ta['transaction_date'] = pd.to_datetime(ta['transaction_date'])

输出:

0    2019-11-30
1    2019-12-31
2    2019-12-31
3    2019-12-31
4    2019-12-31
5    2020-01-21
6    2020-01-27
7    2020-01-02
8    2020-01-02
9    2020-03-02
10   2020-02-15
11   2020-12-03
12   2020-03-13
13   2020-03-31
14   2020-03-31
15   2020-04-04
16   2020-04-04
17   2020-04-04

如您所见,将其转换为日期时间后的第 11 个输出是错误的月份与日期交换。这影响了我的进一步分析。我该如何解决这个问题。

【问题讨论】:

    标签: python pandas date datetime


    【解决方案1】:

    使用dayfirst=True 参数或指定格式,因为如果可能,pandas 默认首先匹配月份:

    a['transaction_date'] = pd.to_datetime(ta['transaction_date'], dayfirst=True)
    

    或者:

    a['transaction_date'] = pd.to_datetime(ta['transaction_date'], format='%d-%m-%Y')
    

    【讨论】:

      【解决方案2】:

      方法一

      看看这个dateframe

      有一个名为dayfirst的参数设置为true

      方法二

      在to_datetime函数中使用参数format

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 2016-07-05
        相关资源
        最近更新 更多