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

如何用Pandas explode列并为复制行设置指定列值

实现思路与代码示例

核心思路

先对Col1执行explode拆分列表列,再区分拆分后的第一行和后续复制行:第一行保留原Col2的值,其余行替换为指定值z。

分步实现

  1. 构造示例数据
import pandas as pd

df = pd.DataFrame({
    'Col1': [['A', 'B', 'C']],
    'Col2': ['x'],
    'Col3': ['y']
})
  1. 执行explode拆分
df_exploded = df.explode('Col1').reset_index(drop=True)
  1. 更新Col2列的值
    如果只有单条原始数据,直接通过索引判断即可:
df_exploded['Col2'] = ['x'] + ['z']*(len(df_exploded)-1)

如果是多条原始数据的通用场景,需要先标记原始行分组,再批量替换:

# 给原始行添加唯一标识
df['original_id'] = df.index
# 拆分后按原始标识分组
df_exploded = df.explode('Col1')
# 组内第一行保留原Col2,其余替换为z
df_exploded['Col2'] = df_exploded.groupby('original_id').apply(
    lambda g: g['Col2'].iloc[0] if g.name == g.index[0] else 'z'
).reset_index(level=0, drop=True)
# 删除辅助列
df_exploded = df_exploded.drop('original_id', axis=1).reset_index(drop=True)

最终输出

Col1Col2Col3
Axy
Bzy
Czy

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:06:24