Python 将每日数据帧转换为分钟频率

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':

我有一个数据帧,定义如下(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': '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,上面的方法会导致另一个错误地向前填充缺少的行的问题,我也在一个新线程中发布了: