Python 将每日数据帧转换为分钟频率
我有一个数据帧,定义如下(df),具有每日频率,我想将其转换为分钟频率,从8:30开始,到16:00结束Python 将每日数据帧转换为分钟频率,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据帧,定义如下(df),具有每日频率,我想将其转换为分钟频率,从8:30开始,到16:00结束 import pandas as pd dict = [ {'ticker':'jpm','date': '2016-11-28','returns': '0.2'}, { 'ticker':'ge','date': '2016-11-28','returns': '0.2'}, {'ticker':'fb', 'date': '2016-11-28','returns':
import pandas as pd
dict = [
{'ticker':'jpm','date': '2016-11-28','returns': '0.2'},
{ 'ticker':'ge','date': '2016-11-28','returns': '0.2'},
{'ticker':'fb', 'date': '2016-11-28','returns': '0.2'},
{'ticker':'aapl', 'date': '2016-11-28','returns': '0.2'},
{'ticker':'msft','date': '2016-11-28','returns': '0.2'},
{'ticker':'amzn','date': '2016-11-28','returns': '0.2'},
{'ticker':'jpm','date': '2016-11-29','returns': '0.2'},
{'ticker':'ge', 'date': '2016-11-29','returns': '0.2'},
{'ticker':'fb','date': '2016-11-29','returns': '0.2'},
{'ticker':'aapl','date': '2016-11-29','returns': '0.2'},
{'ticker':'msft','date': '2016-11-29','returns': '0.2'},
{'ticker':'amzn','date': '2016-11-29','returns': '0.2'}
]
df = pd.DataFrame(dict)
df['date'] = pd.to_datetime(df['date'])
df=df.set_index(['date','ticker'], drop=True)
有人能建议怎么做吗?我相信您需要为
日期时间索引
重新设置,然后为多索引
设置分钟频率、过滤时间和最后使用时间:
df1 = df.unstack().asfreq('Min', method='ffill').between_time('8:30','16:00').stack()
print (df1.head(10))
returns
date ticker
2016-11-28 08:30:00 aapl 0.2
amzn 0.2
fb 0.2
ge 0.2
jpm 0.2
msft 0.2
2016-11-28 08:31:00 aapl 0.2
amzn 0.2
fb 0.2
ge 0.2
df1
没有变量,这是打字错误吗?你认为是4:00
还是16:00
?对不起,我修复了df1。是的,我是说16:00,很抱歉。别忘了绿色勾选@Tartaglia:)回答得好,杰扎雷尔@数据新手-谢谢:)Jezrael,由于某种奇怪的原因,上面的方法不适用于2行数据帧,我已经在一个新线程中发布了:Jezrael,上面的方法会导致另一个错误地向前填充缺少的行的问题,我也在一个新线程中发布了: