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

如何用iloc为无表头的现有DataFrame添加与第二列值相同的第三列?

可行实现方案

首先确认原始DataFrame的结构:

import pandas as pd
df = pd.DataFrame([*zip([1,2,3],[4,5,6])])

此时df的列为0和1,我们要创建列2,其值与列1(通过iloc[:,1]定位)完全一致。


方案1:直接赋值(最简洁直观)

直接通过列名赋值,右侧用iloc定位第二列数据:

df[2] = df.iloc[:, 1]

执行后df会新增列2,每一行的值和对应行的列1完全相同。

方案2:使用assign方法(适合链式操作)

如果需要保持链式调用的风格,可以用assign方法创建新列,同样通过iloc获取源数据:

df = df.assign(**{2: df.iloc[:, 1]})

这里用字典解包的方式指定新列名为2,赋值为iloc[:,1]的结果,返回新的DataFrame(也可直接覆盖原df)。

方案3:分步插入并赋值

如果需要拆分操作步骤,可以先插入空列,再用iloc完成赋值:

# 插入空列到位置2(即第三列)
df.insert(2, 2, value=None)
# 用iloc分别定位目标列和源列完成赋值
df.iloc[:, 2] = df.iloc[:, 1]

这个方案适合需要明确控制列插入位置的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:50:25