Pandas如何将多个单元格的整数合并到单个单元格中?
Pandas 分组拼接整数值实现方案
直接按ACCT字段分组,将组内SOURCES列的整数转字符串后用逗号拼接即可,代码如下:
import pandas as pd # 构造示例输入 df = pd.DataFrame({ 'ACCT': ['A', 'A', 'B', 'C'], 'SOURCES': [1, 2, 1, 4] }) # 核心分组拼接逻辑 result = df.groupby('ACCT', as_index=False)['SOURCES'].agg( lambda x: ','.join(map(str, x)) )
关键说明
- 由于
SOURCES列存储的是整数类型,无法直接调用字符串join方法,必须先通过map(str, x)将组内所有值转为字符串格式再拼接 - 参数
as_index=False用于保证分组字段ACCT作为普通列输出,不会被设为DataFrame索引,输出结构完全匹配需求
运行上述代码后得到的结果输出如下:
| ACCT | SOURCES |
|---|---|
| A | 1,2 |
| B | 1 |
| C | 4 |
如果需要额外对组内值去重、排序,可以调整聚合逻辑,例如下方写法会先对组内整数去重再排序后拼接:
result = df.groupby('ACCT', as_index=False)['SOURCES'].agg( lambda x: ','.join(map(str, sorted(set(x)))) )
内容的提问来源于stack exchange,提问作者Yumeng Xu
相关产品推荐
相关产品推荐

