【问题标题】:Convert column to timestamp - Pandas Dataframe将列转换为时间戳 - Pandas Dataframe
【发布时间】:2018-10-09 22:08:33
【问题描述】:

我有一个 Pandas 数据框,它的日期值按以下格式存储在 2 列中:

Column 1: 04-APR-2018 11:04:29
Column 2: 2018040415203 

如何将其转换为时间戳。这两列的数据类型都是 Object。

【问题讨论】:

    标签: python-3.x pandas datetime


    【解决方案1】:

    对于第一种格式,您可以简单地传递 to_datetime,对于后者,您需要明确描述日期格式(see the table of available directives in the python docs):

    In [21]: df
    Out[21]:
                       col1           col2
    0  04-APR-2018 11:04:29  2018040415203
    
    In [22]: pd.to_datetime(df.col1)
    Out[22]:
    0   2018-04-04 11:04:29
    Name: col1, dtype: datetime64[ns]
    
    In [23]: pd.to_datetime(df.col2, format="%Y%m%d%H%M%S")
    Out[23]:
    0   2018-04-04 15:20:03
    Name: col2, dtype: datetime64[ns]
    

    【讨论】:

    • 嗨,安迪,感谢您的回复。 col1 的语法运行良好。但是得到 col2 AttributeError 的以下错误:'DataFrame' 对象没有属性'date'。你能帮忙吗..
    • @Taukheer to_datetime 不是 DataFrame 或 Series 方法,它是顶级函数 (pd.to_datetime),我对您的错误有点困惑,它不应该在寻找 .date属性。也许试试 df["col2"] 语法?
    • 对不起,安迪,我接受了第一个帖子,但忘了接受这个。再次感谢..
    • 在传递一个实际的格式字符串之前,首先尝试传递infer_datetime_format=True——这可能会加速解析到10x。如果推理失败,那么您可以改用format
    【解决方案2】:

    你也可以试试这些。 尝试在读取文件时传递 infer_datetime_format = True

    如果上述方法失败,请尝试以下方法

    df2 = pd.to_datetime(df.col1)
    

    df2 = pd.to_datetime(df['col1'])
    df2
    

    请注意,上述方法只会将 str 转换为 datetime 格式并在 df2 中返回它们。简而言之,df2 将只有 str 的日期时间格式,而没有列名。如果您想保留数据框的其他列并希望为转换后的列提供标题,您可以尝试以下操作

    df['col1_converetd'] = pd.to_datetime(df.col1)
    

    df['col1_converetd'] = pd.to_datetime(df['col1'])
    

    如果您不想创建数据框或希望将来将转换后的列与数据框的其他属性一起引用,这很方便。

    【讨论】:

    • 这个应该是被接受的。更直接更实用
    猜你喜欢
    • 2016-10-05
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 2014-12-17
    • 2021-07-07
    • 2017-05-18
    • 2021-01-18
    • 2014-07-13
    相关资源
    最近更新 更多