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

如何优化Pandas中按逗号拆分字符串列拆行后长表转宽表的实现

Pandas字符串列拆分转宽表优化实现方案

方案1:基于explode逻辑的优化版

原有逻辑核心思路可用,仅需补充空格处理、简化冗余步骤即可得到预期结果:

import pandas as pd

data = {'id':["ab3e3", "psdds2", "pas13", "ccdf2", "dsda1"],
        'fruit':["apple, organge", "others", "dragon fruit, organge", "watermelon", "others"]}
df = pd.DataFrame(data)

res = (
    # 拆分时直接匹配逗号加可选空格,自动消除拆分后元素前导空格
    df.assign(fruit=df['fruit'].str.split(',\s*'))
    .explode('fruit')
    # 用pivot_table直接统计频次,无需手动加计数列,缺失值自动填0
    .pivot_table(index='id', columns='fruit', aggfunc='size', fill_value=0)
    .reset_index()
    # 去除列名的索引前缀,输出格式和预期完全一致
    .rename_axis(columns=None)
)

方案2:极简实现(推荐)

该场景属于典型的多标签编码场景,直接用Pandas内置的str.get_dummies方法即可一步完成转换,代码量更少、运行效率更高:

res = df.set_index('id')['fruit'].str.get_dummies(sep=', ').reset_index()

两种方案输出均完全匹配预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:24:01