You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将嵌套循环输出结果保存至DataFrame的不同列?

问题

我正在运行一个嵌套循环,希望将输出结果保存到四个不同列中,例如C1R1对应第一列第一行的值、C2R2对应第二列第二行的值等。目前编写的代码得到的是一维列表,格式如下:

['C1R1', 'C2R1', 'C3R1', 'C4R1']

我的代码如下:

dfs1 = []
for i in range(24):
    pd = (data_json2['data']['Rows'][i])
    for j in range(4):
        pd1 = pd['Columns'][j]['Value']
        dfs1.append(pd1)

我期望得到的结果格式如下(类似DataFrame结构):

Column 1  Column 2  Column 3  Column 4
0          0        24        48        72
1          1        25        49        73
...
23        23        47        71        95

但当前得到的是一维列表:

[0, 1, 2, 3, ..., 39]

请问有什么合适的方法可以实现需求?

解决方案

方法1:修改循环生成二维列表

把每一行的4列数据先整理成子列表,再添加到主列表中,得到二维结构后可直接转为DataFrame:

dfs1 = []
for i in range(24):
    row_data = []  # 存储当前行的所有列数据
    pd_row = data_json2['data']['Rows'][i]
    for j in range(4):
        row_data.append(pd_row['Columns'][j]['Value'])
    dfs1.append(row_data)  # 将整行数据加入主列表

# 转换为DataFrame(按需使用)
import pandas as pd
df = pd.DataFrame(dfs1, columns=['Column 1', 'Column 2', 'Column 3', 'Column 4'])
print(df)

方法2:用列表推导式简化代码

通过嵌套列表推导式直接生成二维列表,代码更简洁:

dfs1 = [
    [row['Columns'][j]['Value'] for j in range(4)]
    for row in data_json2['data']['Rows'][:24]
]

# 转换为DataFrame
import pandas as pd
df = pd.DataFrame(dfs1, columns=['Column 1', 'Column 2', 'Column 3', 'Column 4'])

方法3:直接构造字典生成DataFrame

逐行生成包含列名和对应值的字典,再直接转为DataFrame:

import pandas as pd

data_rows = []
for row in data_json2['data']['Rows'][:24]:
    row_dict = {
        f'Column {j+1}': row['Columns'][j]['Value']
        for j in range(4)
    }
    data_rows.append(row_dict)

df = pd.DataFrame(data_rows)
print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:05:27