如何改写含df.groupby(axis=1)的股票数据代码以消除FutureWarning?
用df.T.groupby替代axis=1改写股票数据分组代码
你可以通过转置DataFrame后按行分组的方式替代原代码中的axis=1参数,改写后的代码既能消除警告,又能得到和原代码完全一致的结果:
df = yf.download(tickers, group_by="ticker") d = {idx: gp.T for idx, gp in df.T.groupby(level=0)}
改写逻辑说明:
- 原代码中
df.groupby(level=0, axis=1)是按**列索引的第一层(即ticker)**分组; - 先对df执行转置(
df.T),此时原列索引变成了行索引,直接按level=0分组就等价于原逻辑; - 每个分组
gp是转置后的DataFrame,再执行一次转置(gp.T)就能还原回原数据结构,和原代码中gp.xs(idx, level=0, axis=1)的输出完全一致。
内容的提问来源于stack exchange,提问作者kqd
相关产品推荐
相关产品推荐

