日期时间字符串到纪元:熊猫数据框

Posted

技术标签:

【中文标题】日期时间字符串到纪元:熊猫数据框【英文标题】:Date time string to epoch: pandas dataframe 【发布时间】:2019-07-21 22:16:00 【问题描述】:

我的一个熊猫 df 有日期时间字符串列。格式如下:

TimeStamp                 value
11/12/2015 10:07:34 AM   24.5
11/12/2015 10:07:35 AM   55.1
so on

我尝试使用以下方法将 TimeStamp 列的值转换为纪元:

dataframe['TimeStamp'] = pd.to_datetime(dataframe['TimeStamp']).values.astype(np.int64) // 10 ** 6

将日期时间字符串转换为 unix 时间戳时出现错误。帮助将非常appriciated。谢谢。

【问题讨论】:

对我来说运行良好。结果是[1447322854000, 1447322855000]。你遇到了什么错误? @meW 错误是:TypeError: Unrecognized value type: <class 'str'> File "/usr/local/lib/python3.7/site-packages/dateutil/parser/_parser.py", line 649, in parse raise ValueError("Unknown string format:", timestr) ValueError: ('Unknown string format:', 'TimeStamp') 那是你的TimeStamp 数据的问题。它可能在末尾有一些空格或类似的问题。请参阅@jezrael 解决方案here 以找出您数据中的错误,或者与我们分享您是如何创建此数据框的。 是的,您的数据集中有一个无法解析的流氓字符串,请定位并调查或使用 coerce=True。 【参考方案1】:

我发现TimeStamp 的值不是字符串。感谢@meW 提到数据中可能存在一些问题。

所以,我在将字符串数据时间转换为纪元之前将值转换为字符串。

dataframe['TimeStamp'] = dataframe['TimeStamp'].astype(str)
dataframe['TimeStamp'] = pd.to_datetime(dataframe['TimeStamp'])
                          .values.astype(np.int64) // 10 ** 6

【讨论】:

以上是关于日期时间字符串到纪元:熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

日期时间和熊猫之间的 Unix 纪元值不匹配

在熊猫数据框中将纪元列值转换为时间

熊猫数据框日期时间到时间然后到秒

从日期时间范围创建熊猫数据框[重复]

从熊猫数据框中的日期时间中删除时间戳

熊猫日期时间到 unix 时间戳秒