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

如何在Pandas中按file列分组合并source列的唯一值?

解决Pandas大DataFrame按分组合并字符串的问题

问题场景

给定大规模Pandas DataFrame,需按file列分组,将每组内source列的所有值用; 连接后替换原列,确保相同file的行对应相同的合并字符串。

示例数据

import pandas as pd

df_test = pd.DataFrame(data=None, columns=['file','source'])
df_test['file'] = ['file_1', 'file_1', 'file_2', 'file_2', 'file_3', 'file_3']
df_test['source'] = ['usa', 'uk', 'jp', 'sk', 'au', 'nz']

高效解决方案

针对大规模数据,推荐使用groupby+transform的组合,无需额外合并操作,直接将分组聚合结果映射回原DataFrame,内存效率更高:

# 按file分组,合并每组source列的内容
df_test['source'] = df_test.groupby('file')['source'].transform(lambda x: '; '.join(x))

结果验证

执行后df_test['source']的输出为:

0    usa; uk
1    usa; uk
2     jp; sk
3     jp; sk
4     au; nz
5     au; nz
Name: source, dtype: object

内容的提问来源于stack exchange,提问作者Marcus K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:15:00