gpt4 book ai didi

python - 将每日 Pandas 数据帧转换为分钟频率

转载 作者:行者123 更新时间:2023-12-01 00:53:51 24 4
gpt4 key购买 nike

我有一个如下定义的数据框 (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)

有人可以建议如何做到这一点吗?

最佳答案

我相信你需要 reshape DataFrame.unstack对于 DatetimeIndex,然后通过 DataFrame.asfreq 设置分钟频率,过滤次数为DataFrame.between_time最后一次使用 DataFrame.stack对于多索引:

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

关于python - 将每日 Pandas 数据帧转换为分钟频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56371996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com