例如,我有一张桌子

| ID       | VALUE        |

| -------- | -------------- |
| 1    | row24           |
| 2   | row24            |
| 3    | row1            |
| 4   | row15            |
| 5    | row16           |
| 6   | row17            |
| 8   | row24            |
| 7   | row17            |
| 9   | row19            |

输出应为:

| ID       | VALUE        |

| -------- | -------------- |
| [1,2,8]    | row24           |

| 3    | row1            |
| 4   | row15            |
| 5    | row16           |
| [6,7]   | row17         |
| 9   | row19            |

我想也许《Pandas 群比》是一个解决方案,我try 了一些,但没有成功...

推荐答案

如果需要组合列表和标量,请使用GroupBy.agg和lambda函数:

df =  (df.groupby('VALUE', sort=False)['ID']
        .agg(lambda x: list(x) if len(x) > 1 else x)
        .reset_index(name='IDS'))
print (df)
   VALUE        IDS
0  row24  [1, 2, 8]
1   row1          3
2  row15          4
3  row16          5
4  row17     [6, 7]
5  row19          9

因为ig aggregate only list get oalso one element list:

df =  (df.groupby('VALUE', sort=False)['ID']
        .agg(list)
        .reset_index(name='IDS'))
print (df)
   VALUE        IDS
0  row24  [1, 2, 8]
1   row1        [3]
2  row15        [4]
3  row16        [5]
4  row17     [6, 7]
5  row19        [9]

Python相关问答推荐

运行总计基于多列pandas的分组和总和

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

如何请求使用Python将文件下载到带有登录名的门户网站?

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

当独立的网络调用不应该互相阻塞时,'

如何在表中添加重复的列?

在Django admin中自动完成相关字段筛选

如何使用SentenceTransformers创建矢量嵌入?

在pandas/python中计数嵌套类别

如何检测鼠标/键盘的空闲时间,而不是其他输入设备?

以异步方式填充Pandas 数据帧

判断Python操作:如何从字面上得到所有decorator ?

如何获取包含`try`外部堆栈的`__traceback__`属性的异常

多索引数据帧到标准索引DF

时间戳上的SOAP头签名无效

如何在不遇到IndexError的情况下将基数10的整数转换为基数80?

组颠倒大Pandas 数据帧

如何定义一个将类型与接收该类型的参数的可调用进行映射的字典?

在Python Polar中从一个函数调用添加多个列

有条件的滚动平均数(面试问题)