大熊猫时代转换`ms`到`s`

时间:2017-03-14 10:00:19

标签: python pandas

我的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

1 个答案:

答案 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