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

如何向Pandas DataFrame添加新列,值来自指定列名的列?

如何根据指定列名添加新列到Pandas DataFrame?

原始数据

你拥有如下Pandas DataFrame:

import pandas as pd
df = pd.DataFrame({
    'Col1': [2, 74, 37, 36, 95],
    'Col2': [36, 80, 9, 26, 16],
    'Col3': [20, 4, 7, 55, 91],
    'Col4': ['Col2','Col2','Col2','Col2','Col2']
})

需求

需要添加新列Col0,其值来自列Col2(因为Col4的取值均为Col2),期望得到的结果如下:

df = pd.DataFrame({
    'Col1': [2, 74, 37, 36, 95],
    'Col2': [36, 80, 9, 26, 16],
    'Col3': [20, 4, 7, 55, 91],
    'Col4': ['Col2','Col2','Col2','Col2','Col2'],
    'Col0': [36, 80, 9, 26, 16]
})

解决方案

方法1:直接赋值(适用于当前Col4取值固定的场景)

由于Col4所有值都是Col2,直接将Col2列的值赋给新列Col0即可:

df['Col0'] = df['Col2']

方法2:动态取值(适用于Col4取值可能变化的通用场景)

如果后续Col4的取值会有不同的列名,需要根据每行Col4指定的列名动态取值,可以使用以下两种方式:

  • 使用lookup方法:
df['Col0'] = df.lookup(df.index, df['Col4'])
  • 使用apply方法:
df['Col0'] = df.apply(lambda row: row[row['Col4']], axis=1)

验证结果

执行上述代码后,输出的DataFrame将与你期望的结果完全一致。

内容的提问来源于stack exchange,提问作者Евгения

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:24:55