You need to enable JavaScript to run this app. pandas for循环仅输出最后结果 如何将每次结果追加为DataFrame新列
优惠活动
大模型
产品
解决方案
定价
更多

pandas for循环仅输出最后结果 如何将每次结果追加为DataFrame新列

代码修改方案

你遇到的问题是循环内每次都重新创建R对象,导致旧结果被覆盖,只需调整R的初始化逻辑和结果写入方式即可,修改后完整代码如下:

import numpy as np
import pandas as pd

# 读取数据 路径前加r避免转义字符报错
DATA = pd.read_excel(r'C:\gskim\P4DS\Monthly Stock adjClose2.xlsx')
DATA = DATA.set_index("Date")             

DATA1 = np.log(DATA/DATA.shift(1))                             
DATA2 = DATA1.drop(DATA1.index[0])*100                        

# 循环外提前初始化结果表R
R = pd.DataFrame()
for i in range(0, 276):
    Q = DATA2.iloc[i].dropna()
    W = sorted(abs(Q), reverse = False)
    W_qcut = pd.qcut(W, 5, labels = ['A', 'B', 'C', 'D', 'E'])
    F = Q.groupby(W_qcut).sum()
    # 将当前轮次结果作为新列写入R,列名用对应计算日期
    R[DATA2.index[i]] = F

# 输出完整结果
print(R)
# 如需导出到Excel可取消注释下行
# R.to_excel("计算结果.xlsx")

核心修改说明

  • 移除了循环内对R的重复赋值操作,改为在循环外创建空的结果存储对象
  • 每轮计算完成后将结果作为新列追加到R中,列名绑定对应周期的日期,最终R的行是分组标签A~E,列是每轮计算对应的日期,符合需求的存储结构

内容的提问来源于stack exchange,提问作者SungMin Ye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 04:36:07