【问题标题】:Matplotlib Default date format?Matplotlib 默认日期格式?
【发布时间】:2018-02-12 01:59:52
【问题描述】:

我正在使用 Pandas 读取 .csv 文件,其中包含格式为“时间戳”的日期列:

31/12/2016 00:00

我使用以下行将其转换为 datetime64 dtype:

time = pd.to_datetime(df['Timestamp'])

该列有一个对应于近一年的每 15 分钟的条目,当我想绘制超过 1 个月的值时遇到了问题。

Pandas 似乎在读取时将格式从 ISO 更改为 US(所以 YYYY:MM:DD 到 YYYY:DD:MM),所以每当日期时间代表新的一天时,我的图就会有 30 天的间隔。前 5 天的图如下所示:

这是跳转两边文件中的原始数据:

01/01/2017 23:45
02/01/2017 00:00

如果我在第一次跳转时打印(读取后)绘制的值,我会得到:

2017-01-01 23:45:00
2017-02-01 00:00:00

那么有没有办法让 pandas 正确读取日期?

谢谢!

【问题讨论】:

    标签: pandas datetime matplotlib


    【解决方案1】:

    您可以在pd.to_datetime 中指定format 参数来告诉pandas 如何准确解析日期,我想这就是您所需要的:

    time = pd.to_datetime(df['Timestamp'], format='%d/%m/%Y %H:%M')
    

    pd.to_datetime('02/01/2017 00:00')
    #Timestamp('2017-02-01 00:00:00')
    
    pd.to_datetime('02/01/2017 00:00', format='%d/%m/%Y %H:%M')
    #Timestamp('2017-01-02 00:00:00')
    

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 2016-01-25
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多