将列转换为时间戳 - Pandas Dataframe

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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'])

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

【讨论】:

这个应该是被接受的。更直接更实用

以上是关于将列转换为时间戳 - Pandas Dataframe的主要内容,如果未能解决你的问题,请参考以下文章

Python pandas 通过 dt 访问器有效地将日期时间转换为时间戳

将 pandas DataFrame 和 xaxis 绘制为时间戳会产生空图

如何将日期转换为时间戳?

将日期 unix 转换为时间戳

在 Hive 或 Impala 中从 int 转换为时间戳

php怎么将指定日期转换为时间戳