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

如何将一维DataFrame(df1)的ID列值复制到更长DataFrame(df2)对应列

问题:将短DataFrame的ID列值填充到长DataFrame对应列中

需要把一维DataFrame(df1)的ID列值按顺序复制到另一个更长的DataFrame(df2)的ID列前几行,剩余行保留原NaN值。

示例数据

df1(短DataFrame):

ID
0  44
1  22
2  66
3  77

df2(原始长DataFrame):

ID  c2  c3  c4  c5
0  NaN   1   2   2   1
1  NaN   1   3   2   3
2  NaN   3   4   4   3
3  NaN   4   5   6   5
4  NaN   5   6   9   7
5  NaN   1   3   1   5

期望结果

ID  c2  c3  c4  c5
0  44.0   1   2   2   1
1  22.0   1   3   2   3
2  66.0   3   4   4   3
3  77.0   4   5   6   5
4   NaN   5   6   9   7
5   NaN   1   3   1   5

解决方案

使用Pandas的索引定位直接赋值即可实现需求:

1. 构造示例数据(数据已存在可跳过)

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'ID': [44, 22, 66, 77]})
df2 = pd.DataFrame({
    'ID': [np.nan]*6,
    'c2': [1, 1, 3, 4, 5, 1],
    'c3': [2, 3, 4, 5, 6, 3],
    'c4': [2, 2, 4, 6, 9, 1],
    'c5': [1, 3, 3, 5, 7, 5]
})

2. 执行赋值操作

# 定位df2前len(df1)行的ID列,用df1的ID值覆盖
df2.loc[:len(df1)-1, 'ID'] = df1['ID'].values

说明

  • len(df1)获取短DataFrame的行数,确定需要填充的行数范围
  • df2.loc[:len(df1)-1, 'ID']精准定位到df2中需要替换的行和列
  • 直接赋值后,剩余行的NaN值会保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 23:50:30