2016-10-18 31 views
1

我加載以下列方式一些時間序列數據:如何更改熊貓指數的日期格式?

snp = web.DataReader("^GSPC", 'yahoo', start, end)['Adj Close'] 

索引,然後自動格式化爲「datetime64 [NS]」

然後我每天的數據重新取樣,以每年像這樣:

snp_yr = snp.resample('A') 

日期格式化仍然與已經描述的相同。我怎樣才能改變這一年(%Y)?

E.g.從 '2015年12月31日00:00:00' 到 '2015年'

回答

0

我想你需要DatetimeIndex.year,然後如果需要轉換爲string添加astype

df.index = df.index.year 

樣品:

start = pd.to_datetime('2015-02-24') 
rng = pd.date_range(start, periods=10, freq='3M') 

df = pd.DataFrame({'a': range(10)},index=rng) 
print (df) 
      a 
2015-02-28 0 
2015-05-31 1 
2015-08-31 2 
2015-11-30 3 
2016-02-29 4 
2016-05-31 5 
2016-08-31 6 
2016-11-30 7 
2017-02-28 8 
2017-05-31 9 

df.index = df.index.year.astype(str) 
print (df) 
     a 
2015 0 
2015 1 
2015 2 
2015 3 
2016 4 
2016 5 
2016 6 
2016 7 
2017 8 
2017 9 

print (df.index) 
Index(['2015', '2015', '2015', '2015', '2016', '2016', '2016', '2016', '2017', 
     '2017'], 
     dtype='object') 

strftime與另一種解決方案:

df.index = df.index.strftime('%Y') 
print (df) 
     a 
2015 0 
2015 1 
2015 2 
2015 3 
2016 4 
2016 5 
2016 6 
2016 7 
2017 8 
2017 9 

print (df.index) 
Index(['2015', '2015', '2015', '2015', '2016', '2016', '2016', '2016', '2017', 
     '2017'], 
     dtype='object') 
+0

工程就像一個魅力,歡呼聲。 – cJc

+0

很高興能幫到你!美好的一天! – jezrael