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

如何为Pandas DataFrame新增多列并批量添加多行数据?

批量为Pandas DataFrame添加多列并赋值的解决方案

你需要给现有DataFrame批量添加模型输出的多列,之前的尝试因为数据结构不匹配报错,下面是几种可行的方法:

错误原因说明

你写的df[['col3', 'col4']] = [[1,2,3,4,5],[1,2,3,4,5]],传入的是两个长度为5的列表,相当于2行数据,但你的DataFrame有5行,Pandas期望的是5行、每行对应2个新列的值,维度不匹配导致报错。而df['col3', 'col4']这种写法会创建一个多级索引的单列,并非两列,所以会提示长度不匹配。

正确的批量赋值方法

方法1:调整数据结构为每行对应新列值

直接把数据改成每行包含两个新列数值的结构,Pandas会自动对应列赋值:

import pandas as pd
df = pd.DataFrame({'col1':[1,2,3,4,5], 'col2':[1,2,3,4,5]})
# 每行对应col3和col4的数值
df[['col3', 'col4']] = [[1,1], [2,2], [3,3], [4,4], [5,5]]

方法2:转置现有行式数据

如果模型输出是按列返回的(比如两个长度为5的数组),可以用pd.DataFrame转置后匹配行结构:

# 模型返回的两个结果数组
output_col3 = [1,2,3,4,5]
output_col4 = [1,2,3,4,5]
# 转置后赋值
df[['col3', 'col4']] = pd.DataFrame([output_col3, output_col4]).T

方法3:用pd.concat拼接新列

把新列单独做成小DataFrame,再和原DataFrame横向拼接:

new_cols = pd.DataFrame({
    'col3': [1,2,3,4,5],
    'col4': [1,2,3,4,5]
})
df = pd.concat([df, new_cols], axis=1)

方法4:直接用二维数组赋值(适配模型输出)

如果机器学习模型返回的是二维数组(格式为(样本数, 输出列数),这里是(5,2)),可以直接赋值:

import numpy as np
# 模拟模型输出的二维数组
model_output = np.array([[1,1], [2,2], [3,3], [4,4], [5,5]])
df[['col3', 'col4']] = model_output

内容的提问来源于stack exchange,提问作者David Siret Marquès

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:42:23