【问题标题】:Changing date format convert mmm-yy to yyyy/mm/dd更改日期格式将 mmm-yy 转换为 yyyy/mm/dd
【发布时间】:2020-09-13 17:29:50
【问题描述】:

我有一个包含“日期”列的 .CSV 文件。它有完整的日期,例如2020 年 1 月 9 日,但格式为 9 月 20 日。 (所有日期都是每月的第一天)

问题在于 python 正在读取格式化的 .CSV 文件的格式化值 9 月 20 日。如何将所有值更改为 yyyy/mm/dd (2020/09/01) 格式?

到目前为止,我尝试了但无济于事。

import pandas as pd
tw_df = pd.read_csv("tw_data.csv", index_col = "Date", parse_dates = True, format = "%Y%m%d")

错误信息

TypeError: parser_f() 得到了一个意外的关键字参数“格式”

【问题讨论】:

  • 您可能应该明确说明您希望人们假设一个月中的哪一天 - 总是 1?
  • @alani 谢谢。我已经相应更新了

标签: python date formatting


【解决方案1】:

您可以在 Pandas 中使用 datetime 将信息转换为日期。使用strptime 将给定格式的字符串转换为可以在 Pandas 中工作的日期格式。

检查下面的代码:

import pandas as pd
from datetime import datetime

df = pd.read_csv('tw_data.csv')
conv = lambda x: datetime.strptime(x, "%b-%y")
df["Date"] = df["Date"].apply(conv)

【讨论】:

  • 您好!感谢您的尝试,但出现此错误:ValueError: time data 'Sep 20' does not match format '%b-%y'
  • 可能是因为连字符。您可以尝试将格式从 %b-%y 更改为 ´%b %y´
猜你喜欢
  • 1970-01-01
  • 2021-07-20
  • 2022-01-25
  • 2012-03-05
  • 2022-11-10
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2019-11-28
相关资源
最近更新 更多