【问题标题】:How to convert int64 to datetime in pandas如何在熊猫中将 int64 转换为日期时间
【发布时间】:2023-03-06 15:19:02
【问题描述】:

我有一个 pandas 数据框,其中有一列 int64 类型,但此列表示日期,例如20180501。我想将此列转换为日期时间,我有以下代码,但它返回错误消息

 df['new_date'] = pd.to_datetime(df['old_date'].astype('str'), format = '%y%m%d')

我收到以下错误消息

ValueError: unconverted data remains: 0501

如何修复我的代码?

【问题讨论】:

    标签: python pandas datetime


    【解决方案1】:

    您需要一个大写字母Y。如需完整参考,请参阅 Python's strftime directives

    df = pd.DataFrame({'old_date': [20180501, 20181230, 20181001]})
    
    df['new_date'] = pd.to_datetime(df['old_date'].astype(str), format='%Y%m%d')
    
    print(df)
    
       old_date   new_date
    0  20180501 2018-05-01
    1  20181230 2018-12-30
    2  20181001 2018-10-01
    

    【讨论】:

    • 不幸的是,无论有没有 '.astype(str)',它都没有效果(静默失败)......当尝试从 '%Y-%m-%d' 转换为 '%d/ %m/%Y'。
    【解决方案2】:

    问题可能是由于数据框中某些位置的格式错误引起的。

    您可以尝试设置参数 errors="coerce" 以避免转换这些条目并将它们设置为 NaT。

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html

    【讨论】:

      猜你喜欢
      • 2019-02-17
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 2018-12-08
      • 2018-07-04
      • 2020-11-03
      相关资源
      最近更新 更多