R语言如何基于指定列分组将另一列所有值汇总为列表
实现方案
Python Pandas 实现
如果你用Pandas处理表格数据,直接调用groupby+聚合方法即可实现需求:
- 要将
cont_name汇总为列表格式,使用如下代码:
import pandas as pd # df为你的原始DataFrame对象 result = df.groupby('ticker', as_index=False)['cont_name'].agg(list)
- 如果你需要把值拼接为单个字符串(比如用逗号分隔),可以调整聚合逻辑:
result = df.groupby('ticker', as_index=False)['cont_name'].agg(lambda x: ', '.join(x))
SQL 实现
如果是在SQL场景下处理,可使用对应数据库的分组拼接函数:
不同数据库的函数名有差异:MySQL用
GROUP_CONCAT,PostgreSQL用STRING_AGG,Hive/Spark SQL用collect_list/concat_ws
- 汇总为数组格式(以Spark SQL为例):
SELECT ticker, collect_list(cont_name) AS cont_name FROM 你的表名 GROUP BY ticker
- 拼接为逗号分隔的字符串(以MySQL为例):
SELECT ticker, GROUP_CONCAT(cont_name SEPARATOR ',') AS cont_name FROM 你的表名 GROUP BY ticker
内容的提问来源于stack exchange,提问作者Arihant Jain
相关产品推荐
相关产品推荐

