python - 对 pandas 中的列表列表中的行进行分组

标签 python pandas

我有一个如下所示的数据框:

ID Description
1  A
1  B
1  C
2  A
2  C
3  A

我想按 ID 列进行分组,并将描述作为列表的列表获取,如下所示:

ID Description
1  [["A"],["B"],["C"]]
2  [["A"],["C"]]
3  [["A"]]

df.groupby('ID')['Description'].apply(list) 但这仅创建列表的“第一级”。

最佳答案

这与 @jezrael 略有不同,因为字符串列表是通过 map 完成的。此外,调用 reset_index() 将“描述”显式添加到输出中。

import pandas as pd

df = pd.DataFrame([[1, 'A'], [1, 'B'], [1, 'C'], [2, 'A'], [2, 'C'], [3, 'A']], columns=['ID', 'Description'])

df.groupby('ID')['Description'].apply(list).apply(lambda x: list(map(list, x))).reset_index()

# ID Description
# 1 [[A], [B], [C]] 
# 2 [[A], [C]] 
# 3 [[A]] 

关于python - 对 pandas 中的列表列表中的行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48501958/

相关文章:

python - 在类中迭代列表时,“type”对象不可迭代

python - 500 内部服务器错误 : Python Bottle API

python-3.x - 根据列将多个无标题列中的值替换为 0、1、2

python - 如何从scrapy调用输出文件名

python - 用python绘制不同颜色的圆圈

python - 使用 Python 启动浏览器(Chromium)并更改 url

python - 如何从 Pandas 数据帧返回 groupby 值?

python - 在 Python 中的列表中混洗列表的有效方法

python - 从 excel 文件列中读取列表列表并将其存储在 python 列表中

python - 凌乱的 Excel 日期支持 Python Pandas 日期