2016-10-24 14 views
2

私は 'df'と呼ばれるDataFrameオブジェクトを持っていて、実際の読み取り可能な日付に 'タイムスタンプ'を変換しようとしています。パンダは日付を整数に変換します

 timestamp 
0 1465893683657  
1 1457783741932 
2 1459730006393 
3 1459744745346 
4 1459744756375 

アイブ氏は

df['timestamp'] = pd.to_datetime(df['timestamp'],unit='s') 

を試してみましたが、これは、私は日付が今年か去年のいずれかでなければなりません知っているので、明らかに間違っている

 timestamp 
0 1970-01-01 00:24:25.893683657 
1 1970-01-01 00:24:17.783741932 
2 1970-01-01 00:24:19.730006393 
3 1970-01-01 00:24:19.744745346 
4 1970-01-01 00:24:19.744756375 

を与えます。

私は間違っていますか?

答えて

2

ソリューション:

print (pd.to_datetime(df.timestamp, unit='ms')) 
0 2016-06-14 08:41:23.657 
1 2016-03-12 11:55:41.932 
2 2016-04-04 00:33:26.393 
3 2016-04-04 04:39:05.346 
4 2016-04-04 04:39:16.375 
Name: timestamp, dtype: datetime64[ns] 
+0

どちらの答えは私のために働きます。これまでと同じ結果が得られます。いくつかの情報:type(df ['timestamp']) - >与える - > pandas.core.series.Series –

+0

おそらくいくつかの悪いデータがあります。 '(pd.to_datetime(df.timestamp、unit = 'ms '、errors =' coerce ')) 'をNaNに変換します。また、df.timestamp = df.timestampでも 'print df [pd.to_datetime(df.timestamp、unit = 'ms'、errors = 'coerce')。isnull()]' – jezrael

+0

という行をチェックすることができます。 to_datetime()エラーが発生しました。AttributeError: 'Series'オブジェクトに 'to_datetime'属性がありません。 –

1

有効数字を減らすか、@ jezraelの単位( 'ms')を使い分けることができます。ユニットms

In [133]: pd.to_datetime(df.timestamp // 10**3, unit='s') 
Out[133]: 
0 2016-06-14 08:41:23 
1 2016-03-12 11:55:41 
2 2016-04-04 00:33:26 
3 2016-04-04 04:39:05 
4 2016-04-04 04:39:16 
Name: timestamp, dtype: datetime64[ns] 
関連する問題