我正在处理以下数据帧:
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)
与自定义 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)
归档时间: |
|
查看次数: |
446 次 |
最近记录: |