我正试着从熊猫的日常生活中重新采样一些数据。我是新来的熊猫,也许我需要格式化日期和时间之前,我可以做到这一点,但我找不到一个很好的教程在那里正确的方式来处理与进口的时间序列数据。我发现的一切都是从雅虎或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
有人能帮助我了解我需要做的“日期”和“时间”专栏在我的博客,所以我可以重新采样?
最佳答案
对于createDataFrame
可以使用:
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_datetime
列date
,然后使用resample
和一些聚合函数,如sum
或mean
: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