2017-03-14 9 views
0

エポックタイムスタンプのあるパンダデータフレームはmsです。私はsに変換したいと思います。私は単純に1000.0で割っています。ただし、これは次のようになります。パンダエポック時間変換 `ms`から` s`

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 

答えて

2

私はこの問題は、あなたがfloatで割ると思い、出力dtypefloatです。

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 
関連する問題