Python:如何使用列中的列表进行分组

5 python pandas

我正在处理以下数据帧:

   list          orders
[item1, item2]     A
[item10, item1]    A
[item10, item15]   B
Run Code Online (Sandbox Code Playgroud)

当我按分组排序时,列表列完全消失.是否有使用列表进行分组的方法.我的预期结果是:

      list:                        orders:
[item1, item2, item10, item1]        A
[item10, item15]                     B
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 4

与自定义 lambda 函数一起使用groupby以展平嵌套列表:

from  itertools import chain
f = lambda x: list(chain.from_iterable(x))
Run Code Online (Sandbox Code Playgroud)

或者:

f = lambda x: [z for y in x for z in y]
Run Code Online (Sandbox Code Playgroud)

或者:

f = lambda x: np.concatenate(x.values)
Run Code Online (Sandbox Code Playgroud)
df = df.groupby('orders')['list'].apply(f).reset_index()
print (df)
  orders                           list
0      A  [item1, item2, item10, item1]
1      B               [item10, item15]
Run Code Online (Sandbox Code Playgroud)

如果性能不重要(大数据时速度慢):

df = df.groupby('orders')['list'].sum().reset_index()
Run Code Online (Sandbox Code Playgroud)