2016-06-21 92 views
2

我正在关注一个课程,我必须将日期转换为unix时间戳。'时间戳'对象没有属性'时间戳'

import pandas as pd 

df = pd.read_csv('file.csv') 
print type(df.iloc[-1].name) 

类的pandas.tslib.Timestamp'

ts = df.iloc[-1].name.timestamp() 

AttributeError的: '时间戳' 对象有没有属性 '时间戳'

+3

好像'Timestamp'类不提供一个'时间戳()'方法。它应该吗? – khelwood

+2

你想做什么? – Borbag

+0

嗨 - 我的回应还是@ MaxU的回复帮助解决您的问题?如果是这样,如果你可以将问题标记为已回答,那就太好了。 –

回答

0

其实你不问问题(下次提示:更明确),但我认为你需要熊猫Timestamp对象的epoch/Unix时间戳。

如果使用pandas.tslib.Timestamp.value方法,你就会返回微秒(1/1000000-秒)时间戳:

In [1]: import pandas as pd 

In [2]: date_example = pd.to_datetime("2016-06-21") 

In [3]: type(date_example) 
Out[3]: pandas.tslib.Timestamp 

In [4]: date_example.value 
Out[4]: 1466467200000000000 

如果你喜欢,你可以简单地除以1000得到毫秒1000000转换为得到全秒,如:

In [5]: date_example.value/1000000 
Out[5]: 1466467200000 
0

IIUC,你可以这样来做:

产生样品DF与日期时间D型

In [65]: x = pd.DataFrame({'Date': pd.date_range('2016-01-01', freq='5D', periods=5)}) 

In [66]: x 
Out[66]: 
     Date 
0 2016-01-01 
1 2016-01-06 
2 2016-01-11 
3 2016-01-16 
4 2016-01-21 

转换日期时间到UNIX时间戳

In [67]: x.Date.astype(np.int64) // 10**9 
Out[67]: 
0 1451606400 
1 1452038400 
2 1452470400 
3 1452902400 
4 1453334400 
Name: Date, dtype: int64