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

如何将Pandas指定列按分号拆分为多行,其余列保留对应格式

问题:拆分DataFrame多值列并保留其他列仅首行显示

原始DataFrame:

Sl No.description1description2
1dog;lion;tigersentence1
2cat;pet;elephantsentence2

期望输出:

Sl No.description1description2
1dogsentence1
lion
tiger
2catsentence2
pet
elephant

解决方案

先用explode展开多值列,再通过标记重复行隐藏重复的Sl No.和description2值即可:

步骤1:创建示例DataFrame

import pandas as pd

df = pd.DataFrame({
    'Sl No.': [1, 2],
    'description1': ['dog;lion;tiger', 'cat;pet;elephant'],
    'description2': ['sentence1', 'sentence2']
})

步骤2:拆分并展开多值列

# 将description1按分号拆分为列表,再展开成多行
df_exploded = df.assign(description1=df['description1'].str.split(';')).explode('description1')

步骤3:处理重复列值

# 仅保留每组第一行的Sl No.值,其余行设为空字符串
df_exploded['Sl No.'] = df_exploded['Sl No.'].mask(df_exploded.duplicated('Sl No.'), '')
# 仅保留每组第一行的description2值,其余行设为空字符串
df_exploded['description2'] = df_exploded['description2'].mask(df_exploded.duplicated('Sl No.'), '')

最终结果

运行后df_exploded即为期望格式:

Sl No. description1 description2
0      1          dog    sentence1
0                 lion             
0                tiger             
1      2          cat    sentence2
1                 pet             
1              elephant             

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:02:27