【问题标题】:object to datetime conversion_ converting from mm/dd/yyyy object value type to date type (python, pandas)对象到日期时间转换_从 mm/dd/yyyy 对象值类型转换为日期类型(python、pandas)
【发布时间】:2017-09-29 05:12:59
【问题描述】:

所有变量都是对象 dtype。我想将 dtype 从对象转换为日期时间。

    df = pd.DataFrame(
                    {"ID":['A','B','C','D','E'],
                     "date":['4/12/2017','4/27/2017','4/28/2017','4/29/2017','4/210/2017'],
                     })

我有 3 种不同的方法。首先,

df['date'] = pd.to_datetime(df['date'], format="%m-%d-%Y")

这没有成功,给我一个价值错误说“时间数据 '4/12/2017' 与指定的格式不匹配”​​

第二,

parse(exerciseCsv['mostRecentExerciseDate'], dayfirst=True)

第三,

[datetime.strptime(x, '%m/%d/%Y') for x in exerciseCsv['mostRecentExerciseDate']]

以上都没有成功。这看起来像一个简单的任务,任何人都可以帮助我如何完成这项工作并解释我为什么这不起作用?

【问题讨论】:

  • pd.to_datetime(df['date'], format="%m/%d/%Y")

标签: python pandas datetime type-conversion


【解决方案1】:

如果可能的话,我认为您需要添加参数errors='coerce' 一些不良数据,这些数据将转换为NaTNaN for datetime):

df['date'] = pd.to_datetime(df['date'], errors='coerce')
print (df)
  ID       date
0  A 2017-04-12
1  B 2017-04-27
2  C 2017-04-28
3  D 2017-04-29
4  E        NaT

如果最后一个值有错别字:

df = pd.DataFrame(
                    {"ID":['A','B','C','D','E'],
                     "date":['4/12/2017','4/27/2017','4/28/2017','4/29/2017','4/21/2017'],
                     })

df['date'] = pd.to_datetime(df['date'])
print (df)
  ID       date
0  A 2017-04-12
1  B 2017-04-27
2  C 2017-04-28
3  D 2017-04-29
4  E 2017-04-21

正如评论中提到的Stephen Rauch 需要通过数据改变模式 - 添加/ 而不是-

df['date'] = pd.to_datetime(df['date'], format="%m/%d/%Y")
print (df)
  ID       date
0  A 2017-04-12
1  B 2017-04-27
2  C 2017-04-28
3  D 2017-04-29
4  E 2017-04-21

【讨论】:

  • 非常有帮助!非常感谢 jezrael
  • 很高兴能为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2011-01-17
  • 2013-01-09
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多