嵌套for循环中如何向Pandas DataFrame添加符合要求的新列
解决方案
你原来的代码是把所有循环生成的值都存入一维列表,最后只能生成单列结构。你可以按外层循环的维度拆分数据存储逻辑,修改后的可运行代码如下:
from random import randint import numpy as np import pandas as pd # 分别存储列数据、列名 cols_data = [] col_names = [] for i in range(2): # 每轮外层循环单独存储当前列的所有值 current_col = [] value = randint(0, 10) for j in range(2): mean_val = np.mean(value) current_col.append(mean_val) cols_data.append(current_col) col_names.append(f'mean_{i+1}') # 转置后生成符合要求的DataFrame result = pd.DataFrame(cols_data, index=col_names).T print(result)
核心修改逻辑
- 新增独立的列表存储每轮外层循环对应的整列数据,避免所有值混存在同一个一维列表中
- 所有循环结束后一次性生成DataFrame,避免循环内反复实例化DataFrame造成性能损耗
- 通过
.T做矩阵转置,将按行存储的列数据转换为实际的DataFrame列结构
运行后即可得到你期望的输出格式,示例输出如下:
mean_1 mean_2 0 2 4 1 5 7
内容的提问来源于stack exchange,提问作者Niam45
相关产品推荐
相关产品推荐

