【问题标题】:Date parsing code for "Jul 07, 2019" in pandas, Python熊猫,Python中“Jul 07, 2019”的日期解析代码
【发布时间】:2019-07-27 12:14:54
【问题描述】:

我一直在尝试为我的金融时间序列项目解析表单的日期 - Jul 07, 2018 到 dd-mm-yyyy 格式。但是作为 Pandas 的新手,我无法以通常的方式进行操作,即使用

我试过了:

dateparse = lambda dates: pd.datetime.strptime(dates, '%m/%d/%Y')
data = pd.read_csv('C:\\doc.csv', parse_dates=['date'], index_col='date',date_parser=dateparse)

错误显示为:

ValueError: time data `Jul 07, 2019' does not match format '%m/%d/%Y'

【问题讨论】:

  • Here's 一个很好的来源,可以在未来为您的解析器找到正确的代码

标签: python pandas date-parsing


【解决方案1】:

简而言之:格式为%b %d, %Y

您需要更改dateparse中指定的格式:

dateparse = lambda 日期:pd.datetime.strptime(dates, '%b %d, %Y')
data = pd.read_csv('C:\\doc.csv', parse_dates=['date'], index_col='date',date_parser=dateparse)

例如:

>>> datetime.strptime('Jul 07, 2018', '%b %d, %Y')
datetime.datetime(2018, 7, 7, 0, 0)
>>> datetime.strptime('Apr 07, 2018', '%b %d, %Y')
datetime.datetime(2018, 4, 7, 0, 0)

【讨论】:

  • 这有两个问题。首先,一个命名的 lambda,其次,pandas 带有 to_datetime,它不需要相同的隐式 python 循环,并且还接受格式字符串
  • 另外,read_csv 本身允许为不同的列和日期格式字符串指定 dtypes(尽管我倾向于分两部分进行,例如我的初始评论)。我猜date_parser 参数适用于常规日期时间语法未涵盖的格式
猜你喜欢
  • 1970-01-01
  • 2016-06-04
  • 1970-01-01
  • 2014-02-20
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
相关资源
最近更新 更多