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

如何在Pandas中为每个元素添加列,重复其对应Type为La的Value值

在Pandas中为每个Element填充对应特定Type的Value值

现有数据

Element     Type  Value
A           Ex     5
A           La     9
A           Bd     0
B           La     2 
B           Ex     7 
B           Ex     3

期望结果

Element     Type  Value  La
A           Ex     5     9
A           La     9     9
A           Bd     0     9
B           La     2     2
B           Ex     7     2
B           Ex     3     2

解决方案

方法1:groupby + transform

按Element分组后,用transform提取每组中Type为La的Value,自动填充到该组所有行:

import pandas as pd

# 构造原始数据集
df = pd.DataFrame({
    'Element': ['A', 'A', 'A', 'B', 'B', 'B'],
    'Type': ['Ex', 'La', 'Bd', 'La', 'Ex', 'Ex'],
    'Value': [5, 9, 0, 2, 7, 3]
})

# 新增La列
df['La'] = df.groupby('Element')['Value'].transform(lambda x: x[df.loc[x.index, 'Type'] == 'La'].iloc[0])

print(df)

方法2:merge合并

先筛选出Type为La的记录,再和原数据集按Element字段合并,实现批量填充:

import pandas as pd

# 构造原始数据集
df = pd.DataFrame({
    'Element': ['A', 'A', 'A', 'B', 'B', 'B'],
    'Type': ['Ex', 'La', 'Bd', 'La', 'Ex', 'Ex'],
    'Value': [5, 9, 0, 2, 7, 3]
})

# 提取La对应的Value并重命名列
la_map = df[df['Type'] == 'La'][['Element', 'Value']].rename(columns={'Value': 'La'})

# 合并数据
df = df.merge(la_map, on='Element', how='left')

print(df)

补充说明

由于每个Element对应的La类型仅存在唯一一条记录,两种方法都能稳定生成目标结果,无需处理重复值冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:26:02