我有一个如下所示的数据框:
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/