2016-10-24 238 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

解決方案與單位ms

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']) - > given - > pandas.core.series.Series –

+0

也許有一些不好的數據 - 使用'(pd.to_datetime(df.timestamp,unit ='ms ',errors ='coerce'))'將它們轉換爲'NaN'。你也可以用'print df [pd.to_datetime(df.timestamp,unit ='ms',errors ='coerce')。isnull()]' – jezrael

+0

來檢查這一行,如果我做了df.timestamp = df.timestamp。 to_datetime()我得到錯誤AttributeError:'Series'對象沒有屬性'to_datetime' –

1

您可以減少有效數字或更好地使用@ jezrael的單位('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]