2017-03-14 17 views
1

要從1990-1-1形式YYYY-MM-DD創造了一系列時間戳來1991-12-31pandas說的:熊貓:轉換系列時間戳保持YYYY-MM-DD格式只

import pandas 
import datetime 

start = datetime.date(1990, 1, 1) 
end = datetime.date(1991, 12, 31) 
s = pandas.Series(pandas.date_range(start=start, end=end, freq='D')) 

結果:

In[1]: s 
Out[1]: 
0  1990-01-01 
1  1990-01-02 
2  1990-01-03 
3  1990-01-04 
... 

如何將s轉成列表?如果我做

In[2]: s.tolist() 
Out[2]: 
[Timestamp('1990-01-01 00:00:00'), 
Timestamp('1990-01-02 00:00:00'), 
Timestamp('1990-01-03 00:00:00'), 
Timestamp('1990-01-04 00:00:00'), 
... 

不僅我得到的日期,而且還有我不需要的附加信息。 我的問題:我怎樣才能得到YYYY-MM-DD(字符串)值只從s

回答

3

使用.dt.strftime輸出你在你想要的字符串格式日期:

In [114]: 
s.dt.strftime('%Y-%m-%d').head() 

Out[114]: 
0 1990-01-01 
1 1990-01-02 
2 1990-01-03 
3 1990-01-04 
4 1990-01-05 
dtype: object 

In [115]: 
s.dt.strftime('%Y-%m-%d').head().tolist() 

Out[115]: 
['1990-01-01', '1990-01-02', '1990-01-03', '1990-01-04', '1990-01-05'] 

注意,雖然你不能修改熊貓的日期顯示格式時,D型爲datetime,只能生成你想要的格式的字符串但這是不太有用IMO

更新

如果你得到的Unicode字符串,那麼你可以看看這個:https://stackoverflow.com/questions/4855645/how-to-turn-unicode-strings-into-regular-strings將它們轉換成常規字符串

+0

呃....有趣...我用一個unicode符號(如u'1990-1-1'')獲取數據郵票。如何擺脫它? – FaCoffee

+0

我使用python 3,是你的python 2嗎? – EdChum

+0

是的,對不起大聲笑...應該提到, – FaCoffee