【问题标题】:Pandas DateTime Format not working - python熊猫日期时间格式不起作用 - python
【发布时间】:2019-03-18 19:28:08
【问题描述】:

我正在尝试使用 datetime 格式化一些日期,但由于某种原因它忽略了我的格式调用。我想要日/月/年格式,这是 CSV 文件的格式,但是当我尝试这个时。

df = pd.read_csv('test.csv', parse_dates=['Date'],
             date_parser=lambda x: pd.to_datetime(x, format='%d/%m/%Y'))

结果:

为什么我只能假设“默认”为 %Y-%m-%d ???

【问题讨论】:

  • 格式指定输入数据的样子。转换为日期时间后,将显示 YYYY-MM-DD HH:mm:SS。您可以使用 strftime 更改显示,但最好将其保留为日期时间以执行计算
  • 您能否指定您正在阅读的 test.csv 中日期列的格式,或者请添加 csv 文件的屏幕截图。问题可能是因为月份和日期参数互换。
  • CSV 格式为 D/M/Y。

标签: python pandas datetime format


【解决方案1】:

这应该可以。

import datetime as dt
import pandas as pd

df = pd.read_csv('test.csv')

formatted_dates =[]

for old_date in df['Date']:

    dt_obj = dt.datetime.strptime(old_date,'%d/%m/%Y')

    new_date = """{}/{}/{}""".format(dt_obj.day,dt_obj.month,dt_obj.year)

    formatted_dates.append(new_date)

df['Date'] = formatted_dates

输出:

18/1/2017
22/1/2017
31/1/2017
...

附: pd.read_csv 中的 parse_dates,date_parser 存在一个错误,它会自动将格式更改为 YYYY-MM-DD。

【讨论】:

  • 感谢您的回复,我收到代码错误 date_parser=lambda x: dt.datetime.strptime(x, format='%d/%m/%Y') ) TypeError: strptime() 没有关键字参数
  • @user3170725 你能通过谷歌驱动分享csv吗,这会很有帮助。谢谢!
  • 奇怪!尝试了很多不同的方法,结果还是和你的一样。会回来找你的。
  • 谢谢!是的,很烦人。我可以将它转换为字符串,它可以工作,但不能很好地用于绘图。
猜你喜欢
  • 1970-01-01
  • 2021-02-17
  • 2020-11-16
  • 2020-06-04
  • 2020-02-21
  • 2020-05-27
  • 2014-02-23
  • 2018-07-05
相关资源
最近更新 更多