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

如何将长度少于DataFrame行数的NumPy数组填充至Pandas DataFrame指定列的指定行

如何将长度少于DataFrame行数的NumPy数组填充至Pandas DataFrame指定列的指定行

嘿,这问题很常见,我来给你捋清楚怎么操作!你需要把长度比DataFrame少一行的NumPy数组,从第二行开始填充到C列,刚好我有几种简单直接的方法:

首先先还原一下你的数据场景,方便我们演示:

import pandas as pd
import numpy as np

# 构建你的DataFrame
df = pd.DataFrame({
    'A': [1, 2, 4],
    'B': [2, 3, 5],
    'C': [np.nan, np.nan, np.nan]
})

# 你的NumPy数组
arr = np.array([10, 20])

方法一:用loc按索引直接赋值(最直观)

因为Pandas默认是0-based索引(第一行索引是0,第二行是1),我们可以直接选中从第二行到最后一行的C列,然后把数组赋值进去:

df.loc[1:, 'C'] = arr

这里loc[1:, 'C']的意思是:选中索引≥1的所有行,并且只取C列,这个范围的行数刚好和你的数组长度一致,完美匹配!

方法二:用iloc按位置选择(适配非连续索引)

如果你的DataFrame行索引不是连续的数字,那用iloc按位置来选会更稳妥:

# 获取C列的位置索引
c_col_idx = df.columns.get_loc('C')
# 从第二行(位置1)开始填充C列
df.iloc[1:, c_col_idx] = arr

这种方式不依赖行索引的具体值,只看行的位置,通用性更强。

最终效果

执行完上面任意一种方法后,你的DataFrame就会变成你想要的样子:

ABC
12NaN
2310
4520

备注:内容来源于stack exchange,提问作者PV8

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 14:34:31