我正在处理以下数据框:
list orders
[item1, item2] A
[item10, item1] A
[item10, item15] B
当我按分组排序时,列表列会完全消失。有没有一种使用列表进行分组的方法。我的预期结果是:
list: orders:
[item1, item2, item10, item1] A
[item10, item15] B
答案 0 :(得分:2)
将groupby
与自定义lambda函数一起用于拼合嵌套列表:
from itertools import chain
f = lambda x: list(chain.from_iterable(x))
或者:
f = lambda x: [z for y in x for z in y]
或者:
f = lambda x: np.concatenate(x.values)
df = df.groupby('orders')['list'].apply(f).reset_index()
print (df)
orders list
0 A [item1, item2, item10, item1]
1 B [item10, item15]
如果性能不重要(大数据速度较慢):
df = df.groupby('orders')['list'].sum().reset_index()