Pandas: 时间戳转换为日期时间

13

我有一个数据框和日期列看起来像

 date
 1476329529    
 1476329530    
 1476329803 
 1476329805 
 1476329805  
 1476329805 
我使用 df['date'] = pd.to_datetime(df.date, format='%Y-%m-%d %H:%M:%S') 进行转换,但结果很奇怪。
 date 
 1970-01-01 00:00:01.476329529   
 1970-01-01 00:00:01.476329530   
 1970-01-01 00:00:01.476329803  
 1970-01-01 00:00:01.476329805    
 1970-01-01 00:00:01.476329805   
 1970-01-01 00:00:01.476329805   

也许我做错了什么

2个回答

20

这看起来像是纪元时间戳,即自1970年1月1日以来的秒数:

In [71]:
pd.to_datetime(df['date'], unit='s')
​
Out[71]:
0   2016-10-13 03:32:09
1   2016-10-13 03:32:10
2   2016-10-13 03:36:43
3   2016-10-13 03:36:45
4   2016-10-13 03:36:45
5   2016-10-13 03:36:45
Name: date, dtype: datetime64[ns]

你好,对我来说这仍然默认为1970年。问题出在哪里? - Baobab
请检查您的单位。如果您没有指定单位,pd现在默认为纳秒。 - user108569

2
也许像这样的东西:
import datetime
date = datetime.datetime.fromtimestamp(1476329529)
date
# gives
# datetime.datetime(2016, 10, 13, 5, 32, 9)

str(date) # '2016-10-13 05:32:09'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接