![](/img/trans.png)
[英]Grouping and sum the value for every 5min / resampling the data for 5min with string values
[英]Trouble resampling pandas timeseries from 1min to 5min data
我有一个 1 分钟间隔的盘中股票数据,如下所示:
import yfinance as yf
import pandas as pd
n = yf.download('^nsei', period= '5d', interval= '1m')
我正在尝试将其重新采样为“5m”数据,如下所示:
n = n.resample('5T').agg(dict(zip(n.columns, ['first', 'max', 'min', 'last', 'last', 'sum'])))
但它试图重新采样不在我的数据中的日期时间信息。 市场数据仅在下午 3:30 之前可用,但当我查看重新采样的 dataframe 时,我发现它试图在整个 24 小时内重新采样。
如何在下午 3:30 之前停止重新采样并继续下一个日期?
由于这个原因,现在 dataframe 主要具有 NaN 值。 任何建议都将受到欢迎。
我不确定你想用那个agg()
function 来实现什么。 假设'first'
指的是第一个分位数, 'last'
指的是最后一个分位数,并且您想计算每列的一些统计信息,我建议您执行以下操作:
获取您的数据:
import yfinance as yf
import pandas as pd
n = yf.download('^nsei', period= '5d', interval= '1m')
重新采样您的数据:
resampled_df = n.resample('5T').mean()
确认有缺失值:
print(resampled_df.isna().sum())
删除缺失值(这将删除所有缺失值的行,这样 15:30 之后重新采样的行将消失):
resampled_df = resampled_df.dropna()
获取统计数据:
statistics = resampled_df.describe()
statistics
请注意, describe()
将不包含总和,因此为了添加它,您可以执行以下操作:
statistics = pd.concat([statistics, resampled_df.agg(['sum'])])
statistics
agg() 是为每一列应用单独的操作方法,我使用它是为了看到股票技术分析中所谓的“烛台”形态。
通过删除 NaN 值,我能够解决这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.