Pandas将整数转换为日期

时间:2016-10-24 07:13:42

标签: date pandas

所以我有一个名为'df'的DataFrame对象,我试图将'timestamp'转换为实际的可读日期。

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

答案 0 :(得分:3)

单位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]

答案 1 :(得分: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]