将日期时间字符串转换为Epoch:Pandas 数据帧

4

我的pandas数据框中有一个日期时间字符串列。格式如下:

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

我尝试使用以下方式将TimeStamp列的值转换为epoch:

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

在将日期时间字符串转换为UNIX时间戳时,我遇到了错误。非常感谢您的帮助。谢谢。


它在我这里运行良好。结果是[1447322854000,1447322855000]。你遇到了什么错误? - meW
@meW 错误为:TypeError: 无法识别的值类型:<class 'str'> 文件“/usr/local/lib/python3.7/site-packages/dateutil/parser/_parser.py”的第649行,在解析时 引发ValueError(“未知字符串格式:”,timestr) ValueError:('Unknown string format:', 'TimeStamp') - Swati
那么问题可能出在你的TimeStamp数据上。它可能在末尾有一些空格或类似的问题。请参考@jezrael的解决方案这里来查找你数据中的错误,或者与我们分享一下你是如何创建这个数据框的。 - meW
是的,在您的数据集中有一个不规则的无法解析的字符串,要么定位并调查,要么使用coerce=True。 - Andy Hayden
1个回答

8

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

所以,在将字符串日期转换成时间戳之前,我先将值转换为字符串类型。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接