【问题标题】:Bad datetime conversion in pandas when a csv file it's opened打开 csv 文件时 Pandas 中的日期时间转换错误
【发布时间】:2021-04-09 22:22:24
【问题描述】:

我有一个简单的 csv,其中有一个日期和活动列,如下所示:

当我用 pandas 打开它并尝试使用 pd.to_datetime 转换 Date 列时,它会更改日期。当有这样的月份变化时

熊猫好像是按月换天或者类似的:

我想要的日期格式是 dd-mm-yyyy 或 yyyy-mm-dd。

这是我使用的代码:

import pandas as pd
dataset = pd.read_csv(directory + "Time 2020 (Activities).csv", sep = ";")
dataset[["Date"]] = dataset[["Date"]].apply(pd.to_datetime)

我该如何解决这个问题?

【问题讨论】:

  • pd.to_datetime 推断格式;如果这是事先已知的 - 直接指定它
  • 您可以像这样在转换过程中指定格式,以防您知道日期的格式。 pd.to_datetime(dataset['Date'], format='%Y%m%d', errors='raise') strftime.org 有格式化选项列表
  • 您可以在读取 csv 本身的同时解析日期。尝试:dataset = pd.read_csv(directory + "Time 2020 (Activities).csv", sep = ";", dayfirst=True, parse_dates=True)

标签: python pandas csv


【解决方案1】:

您可以在pd.to_datetime 参数中指定日期格式:

dataset['Date'] = pd.to_datetime(dataset['Date'], format='%Y-%m-%d')

【讨论】:

  • 这种格式对我有用format='%d/%m/%Y'
猜你喜欢
  • 2018-12-07
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 2018-02-11
  • 2016-11-20
  • 1970-01-01
相关资源
最近更新 更多