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

如何将numpy数组赋值到Pandas DataFrame的指定列位置

解决方案

你原来的写法失效是因为loc是基于列标签的索引,而你当前的列标签是a/b/c这类字符串,无法匹配数字切片2:5。

你可以用基于整数位置索引的iloc实现需求,pandas的位置切片规则为左闭右开,按需求有两种常用写法:

  • 如果需要赋值的是0索引下第2到第5位(共4列,对应列名c/d/e/f,刚好匹配vv的长度),直接写切片即可:
dfr.iloc[0, 2:6] = vv
  • 怕记混切片规则可以直接指定列位置列表,可读性更高:
dfr.iloc[0, [2,3,4,5]] = vv

如果你习惯用loc操作,也可以先取出对应位置的列名再赋值:

target_cols = dfr.columns[2:6]
dfr.loc[0, target_cols] = vv

如果你的需求里“第2到第5列”是从1开始计数的(对应列名b/c/d/e),把上述代码里的切片改成1:5、位置列表改成[1,2,3,4]即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:27:02