我的pandas数据帧带有ms
的纪元时间戳。我希望转换为s
,我只是将其除以1000.0。但是,这将返回以下内容。
df['time_stamp'] = df['time_ms'] / 1000.0
print df.head()
time_ms time_stamp
1486339200000 1.486339e+09
为什么要转换类型?使用1000.0
而非1000
应保持正确的格式。当我随后尝试使用此dt.day
查找日期或日期时,它会失败。
期望的输出
time_ms time_stamp
1486339200000 1486339200
答案 0 :(得分:2)
我认为问题是除以float
,输出dtype
也是float
。
df['time_stamp'] = (df['time_ms'] / 1000.0)
print (df)
time_ms time_stamp
0 1486339200000 1.486339e+09
print (df.dtypes)
time_ms int64
time_stamp float64
dtype: object
然后投射到int
:
df['time_stamp'] = (df['time_ms'] / 1000.0).astype(np.int64)
print (df)
time_ms time_stamp
0 1486339200000 1486339200