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

如何使用Pandas将多行DataFrame与单行DataFrame合并为目标DataFrame

合并多行DataFrame与单行DataFrame生成目标DataFrame

需求说明

现有两个DataFrame:

  • df:包含多行学生的数学、英语成绩数据
  • df1:包含单行的地理、环境、物理、生物成绩数据
    需要将df1的所有列内容重复追加到df的每一行,得到包含所有科目成绩的目标DataFrame df2。

原始数据代码

多行DataFrame df

import pandas as pd
data = [[20, 10], 
        [100, 15], 
        [95, 14]]
df = pd.DataFrame(data, columns=['Math', 'Eng'])

单行DataFrame df1

data1 = [[20, 10, 25, 40]]
df1 = pd.DataFrame(data1, columns=['Geo', 'Env', 'Phy', 'Bio'])

解决方案

方法一:利用pandas广播特性直接赋值

pandas会自动将单行数据广播匹配到多行,直接把df1的列赋值给df即可:

df2 = df.copy()
# 将df1的所有列添加到df2中
df2[df1.columns] = df1.values

方法二:使用concat结合repeat扩展单行数据

先将df1扩展为与df行数相同的DataFrame,再与df横向拼接:

# 扩展df1的行数与df一致
df1_expanded = df1.loc[df1.index.repeat(len(df))].reset_index(drop=True)
# 横向拼接两个DataFrame
df2 = pd.concat([df, df1_expanded], axis=1)

验证结果

运行上述代码后,df2的结构与数据如下:

print(df2)
# 输出结果:
    Math  Eng  Geo  Env  Phy  Bio
0     20   10   20   10   25   40
1    100   15   20   10   25   40
2     95   14   20   10   25   40

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:43:25