Python操作DataFrame:按colA分组将colB值聚合为集合的实现方法
核心实现思路
对colA字段执行分组操作,将同组内colB的所有值聚合为集合类型即可,Pandas原生支持该聚合逻辑。
完整可运行代码
import pandas as pd # 构造原始DataFrame df = pd.DataFrame({ "colA": ["aa", "aa", "bb", "bb"], "colB": [1, 2, 3, 4] }) # 分组聚合,as_index=False 保留colA为普通列而非索引 result_df = df.groupby("colA", as_index=False)["colB"].agg(set) print(result_df)
输出结果
colA colB 0 aa {1, 2} 1 bb {3, 4}
补充说明
如果你需要colB为字符串格式的{1,2}而非Python集合对象,可修改聚合逻辑为:
result_df = df.groupby("colA", as_index=False)["colB"].agg( lambda x: "{" + ",".join(map(str, sorted(x))) + "}" )
添加sorted是为了保证集合元素展示顺序固定,避免集合无序带来的展示差异。
内容的提问来源于stack exchange,提问作者Saideep
相关产品推荐
相关产品推荐

