繁体   English   中英

Pandas Groupby - 追加列表

[英]Pandas Groupby - Append lists

我的 pandas DataFrame 有一列包含 dtype lists dtype 我想Group By并聚合 DataFrame 并附加列表。

这是一个示例数据框:

import pandas as pd

df = pd.DataFrame({
                   'id': [1, 1, 2],
                   'cat': ['A','A','B'],
                   'lst': [['l0','l1','l2'],['l3','l4'],['lb']],
                   'v': [10, 20, 10]
                 })

使用mean聚合列v

预期输出:

id  cat lst                         v

1   A   ['l0','l1','l2','l3','l4']  15
2   B   ['lb']                      10
             

一种简单的方法是使用sum聚合lst列,使用mean聚合v

df.groupby(['id', 'cat'], as_index=False).agg({'lst': 'sum', 'v': 'mean'})

   id cat                   lst     v
0   1   A  [l0, l1, l2, l3, l4]  15.0
1   2   B                  [lb]  10.0

这有效

# groupby and call lambda that flattens a nested list on lst and mean on v
df.groupby(['id', 'cat'], as_index=False).agg({'lst': lambda lst: [x for s_l in lst for x in s_l], 'v':'mean'})
   id cat                   lst     v
0   1   A  [l0, l1, l2, l3, l4]  15.0
1   2   B                  [lb]  10.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM