2017-02-12 12 views
1

私はPandas DataFrameで毎日から毎月のデータを再サンプリングしようとしています。私はパンダを初めて使っているので、これを行う前に日付と時刻をフォーマットする必要があるかもしれませんが、インポートされた時系列データを扱うための適切なチュートリアルはありません。私が見つけたものは、YahooやQuandlから自動的にデータをインポートしています。ここでPandas(日付書式設定)を使用して毎日データを毎月リサンプル

が、私は私のデータフレームに持っているものである:ここでは 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 

誰かが私は私が何をする必要があるか理解するのに役立ちます」 DataFrameの「Date」と「Time」列を使用して再サンプリングできますか?

答えて

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をキャストしてsumまたはmeanのようないくつかの集約関数でresampleを使用することができると思う:

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

関連する問題