[英]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.