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

Pandas:拆分并展开(explode)字符串时如何保留关联信息?

Pandas DataFrame 拆分格式处理方案

原始数据与期望输出

原始DataFrame:

df
0   Apple_a red, green; banana_b yellow
1   peach_p orange; pear_p green

期望输出:

0 Apple_a red
1 Apple_a green
2 banana_b yellow
3 peach_p orange
4 pear_p green

你的代码问题分析

你写的代码存在两处核心问题:

  1. df2=df1.str[0] +x for x in df1.str[1:] 语法错误,Pandas Series无法直接用这种遍历方式生成新序列
  2. 拆分逻辑遗漏了对red, green这类逗号分隔多值的处理,导致无法将同一前缀下的多个颜色拆分成单独行

正确处理代码

# 按分号拆分每组内容并展开为单行
df_split = df.str.split('; ', expand=True).stack().reset_index(drop=True)

# 将每行拆分为前缀(如Apple_a)和颜色组两部分
df_prefix_color = df_split.str.split(' ', n=1, expand=True)
df_prefix_color.columns = ['prefix', 'colors']

# 拆分颜色组并展开每个颜色为单独行
df_final = df_prefix_color.assign(colors=df_prefix_color['colors'].str.split(', ')).explode('colors')

# 拼接前缀与颜色,重置索引得到最终结果
result = df_final.apply(lambda row: f"{row['prefix']} {row['colors']}", axis=1).reset_index(drop=True)

print(result)

运行这段代码后,就能得到你期望的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:20:31