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

Python如何按条件向DataFrame列中插入对应值?

解决方案

实现步骤:

  1. 为df1中每个以"01"起始的分段分配唯一组ID
  2. 建立组ID与df2中对应值的映射关系
  3. 通过映射关系填充df1的N2列

完整代码:

import pandas as pd

# 输入数据
df1 = pd.DataFrame({
    'N1': ['01', '02','03','01','02','01','02','03','04'],
    'N2':['', '','','','','','','','']})
df2 = pd.DataFrame({
    'N1': [ 'PALA A','PALA B','PALA C']})

# 生成分组标识:每遇到"01",组号递增1
df1['group_id'] = (df1['N1'] == '01').cumsum()

# 创建组号到目标值的映射字典
group_to_value = dict(zip(range(1, len(df2)+1), df2['N1']))

# 映射填充N2列
df1['N2'] = df1['group_id'].map(group_to_value)

# 移除临时分组列(可选)
df1 = df1.drop('group_id', axis=1)

# 输出结果
print(df1)

代码说明:

  • (df1['N1'] == '01').cumsum():生成累加序列,将连续的同分段行标记为同一组号,示例中生成[1,1,1,2,2,3,3,3,3]
  • group_to_value:按顺序将组号1、2、3与df2的PALA A、PALA B、PALA C绑定
  • map(group_to_value):直接将组号替换为对应文本,完成N2列的批量填充

执行后得到的结果与期望的result完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:57:27