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

如何用Pandas按分组提取DataFrame中的图片ID并生成指定格式输出?

Pandas分组格式化输出解决方案

嘿,我来帮你搞定这个需求!先明确下你的输入和目标输出:

输入DataFrame

Image    Id
0  1a.jpg  w_1
1  c4.jpg  w_1
2  b01.jpg w_2
3  d5.jpg  w_1
4  df.jpg  w_f
5  c2.jpg  w_2
6  ab.jpg  w_3e

目标输出

(1a.jpg,c4.jpg,d5.jpg)(b01.jpg,c2.jpg)(df.jpg)(ab.jpg)

实现步骤与代码

核心思路就是按Id分组→合并每组的图片名→添加括号→拼接所有结果,用Pandas可以很简洁地实现:

import pandas as pd

# 先构造你的示例DataFrame
df = pd.DataFrame({
    'Image': ['1a.jpg', 'c4.jpg', 'b01.jpg', 'd5.jpg', 'df.jpg', 'c2.jpg', 'ab.jpg'],
    'Id': ['w_1', 'w_1', 'w_2', 'w_1', 'w_f', 'w_2', 'w_3e']
})

# 分组处理+拼接结果
final_output = ''.join(
    df.groupby('Id')['Image']
      .apply(lambda group: f'({",".join(group)})')
)

print(final_output)

代码解释

  • df.groupby('Id')['Image']:按照Id列的值对Image列进行分组,把相同Id的图片名归为一组
  • .apply(lambda group: f'({",".join(group)})'):对每个分组的图片名列表,用逗号拼接成字符串,再给整个字符串套上括号
  • ''.join(...):把所有带括号的分组字符串拼接成一个完整的字符串,就是你要的最终格式

如果习惯用agg方法,也可以写成这样,效果完全一致:

final_output = ''.join(
    df.groupby('Id')['Image']
      .agg(lambda group: f'({",".join(group)})')
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:33:54