Pandas实现:多列值匹配时合并整数列并统计计数
问题解决:按多列分组合并整数字段并统计数量
原始DataFrame
| col1 | col2 | col3 | col4 | col5 |
|---|---|---|---|---|
| 1999 | ABC | ggg | 1 | kogyk |
| 1999 | ABC | ggg | 2 | hfu |
| 1989 | CAT | ppp | 3 | gl |
| 1999 | ABC | uyt | 4 | klyif |
| 1989 | CAT | ppp | 5 | gil |
需求说明
当col1、col2、col3的值完全匹配时,将分组内的col4整数值合并为逗号分隔的字符串,并新增count列统计对应分组的记录数量,期望输出如下:
期望输出
| col1 | col2 | col3 | col4 | count |
|---|---|---|---|---|
| 1999 | ABC | ggg | 1,2 | 2 |
| 1989 | CAT | ppp | 3,5 | 2 |
| 1999 | ABC | uyt | 4 | 1 |
解决方案代码
此前直接拼接整数时会出现错误,通过以下代码可实现预期效果:
df.groupby(['col1', 'col2', 'col3']).agg( col4=('col4', lambda x: ','.join([str(num) for num in list(x)])), count=('col4', 'size') ).reset_index()
内容的提问来源于stack exchange,提问作者gow_r
相关产品推荐
相关产品推荐

