2017-02-12 67 views
1

我正試圖在熊貓數據框中重新採樣一些數據,從每天到每月。我對熊貓是新手,也許我需要首先格式化日期和時間,然後才能做到這一點,但我沒有找到一個很好的教程,以正確的方式使用導入的時間序列數據。我發現的一切都是自動從雅虎或Quandl導入數據。將日常數據重新採樣爲每月使用熊貓(日期格式)

以下是我在我的數據幀: dataframe segment screenshot

下面是我用來創建我的數據框代碼:

#Import excel file into a Pandas DataFrame 
df = pd.read_excel(open('2016_forex_daily_returns.xlsx','rb'), sheetname='Sheet 1') 

#Calculate the daily returns 
df['daily_ret'] = df['Equity'].pct_change() 

# Assume an average annual risk-free rate over the period of 5% 
df['excess_daily_ret'] = df['daily_ret'] - 0.05/252 

有人可以幫助我明白我需要做的「日期「和」時間「列在我的數據框,所以我可以重新採樣?

回答

1

對於創建DataFrame可以使用:

df = pd.read_excel('2016_forex_daily_returns.xlsx', sheetname='Sheet 1') 
print (df) 
     Date  Time Equity 
0 2016-01-03 22:16:22 300.38 
1 2016-01-04 22:16:00 300.65 
2 2016-01-05 14:26:02 301.65 
3 2016-01-06 19:08:13 302.10 
4 2016-01-07 18:39:00 302.55 
5 2016-01-08 22:16:04 308.24 
6 2016-01-11 02:49:39 306.69 
7 2016-01-14 15:46:39 307.93 
8 2016-01-19 15:56:31 308.18 

我覺得你可以先投to_datetimedate然後用resample一些聚集功能,如summean

df.Date = pd.to_datetime(df.Date) 
df1 = df.resample('M', on='Date').sum() 
print (df1) 
      Equity excess_daily_ret 
Date         
2016-01-31 2738.37   0.024252 

df2 = df.resample('M', on='Date').mean() 
print (df2) 
       Equity excess_daily_ret 
Date          
2016-01-31 304.263333   0.003032 

df3 = df.set_index('Date').resample('M').mean() 
print (df3) 
       Equity excess_daily_ret 
Date          
2016-01-31 304.263333   0.003032 
+0

我覺得他在向你展示如何縮減採樣的同時詢問升頻採樣 – st19297