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

使用iloc从DataFrame每隔n行取值填充另一列时如何避免空值

问题原因

pandas 中 Series 之间赋值默认遵循索引对齐规则:你用df2.iloc[::2]取出的是索引为 0、2、4、6 的 Series 对象,赋值给仅包含索引 0-3 的df1.col1时,只有索引 0、2 能匹配到对应值,索引 1、3 找不到匹配项就会被填充为 NULL(NaN)。

解决方法

赋值时将取出的内容转为无索引的数组或列表,即可跳过索引对齐,按位置依次填充:

# 方法1:转为numpy数组
df1['col1'] = df2.iloc[::2].values

# 方法2:转为列表
df1['col1'] = df2.iloc[::2].tolist()

运行后df1.col1的值会按顺序填充为[2, 6, 10, 14],无空值。

如果你需要得到示例中给出的[2, 6, 8, 10]的期望结果,调整iloc的取值范围即可:

df1['col1'] = df2.iloc[[0,2,3,4]].values

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:27:01