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

Python中如何将多行结构的pandas DataFrame转换为单行?

解决方法

你可以直接用pandas的分组聚合实现多行转单行的需求,根据你对labels列的存储要求,选对应写法即可:

  • 如果你需要labels列保留为列表类型(后续做标签统计、遍历处理更方便),执行以下代码:
import pandas as pd

# 原始DataFrame定义
df = pd.DataFrame({'image_id':'490.png', 'labels':['logo_sony', 'text', 'text', 'object_headphone', 'text', 'button']})

# 按image_id分组,将同组labels聚合为列表
df_result = df.groupby('image_id', as_index=False)['labels'].agg(list)

运行后得到的结果中,labels列存储原生Python列表,结构如下:

image_id                                             labels
0  490.png  [logo_sony, text, text, object_headphone, text, button]
  • 如果你需要labels列和你给出的预期效果完全一致,为带单引号、逗号分隔的字符串格式,把聚合逻辑替换为字符串拼接即可:
df_result = df.groupby('image_id', as_index=False)['labels'].agg(
    lambda col_val: ', '.join([f"'{single_label}'" for single_label in col_val])
)

运行后输出完全匹配你的预期效果:

image_id                                             labels
0  490.png  'logo_sony', 'text', 'text', 'object_headphone', 'text', 'button'

注:这个写法兼容多image_id的场景,如果后续你的数据集里包含多个不同的image_id,代码会自动把每个image_id对应的所有标签聚合成单行,不需要额外调整逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:45:56