Python 数据帧中多列的聚合 数据: 我的代码: 问题:
如何在函数“f1”中使用多个列?(此函数需要groupby对象的两列) 预期结果:Python 数据帧中多列的聚合 数据: 我的代码: 问题:,python,pandas,dataframe,group-by,pandas-groupby,Python,Pandas,Dataframe,Group By,Pandas Groupby,如何在函数“f1”中使用多个列?(此函数需要groupby对象的两列) 预期结果: agg函数中的嵌套字典无效。您可以使用groupby.apply并为每个组返回一个正确索引的序列,以便重命名: name1 name2 1 12.0 4 2 13.5 6.5 3 15.5 8.5 agg函数中的嵌套字典无效。您可以使用groupby.apply并为每个组返回一个正确索引的序列,以便重命名: name1 name2 1 12.0 4
agg
函数中的嵌套字典无效。您可以使用groupby.apply
并为每个组返回一个正确索引的序列,以便重命名:
name1 name2
1 12.0 4
2 13.5 6.5
3 15.5 8.5
agg
函数中的嵌套字典无效。您可以使用groupby.apply
并为每个组返回一个正确索引的序列,以便重命名:
name1 name2
1 12.0 4
2 13.5 6.5
3 15.5 8.5
您可以将
agg
与lambda
一起使用,如下所示:
(z.groupby('a')
.apply(lambda g: pd.Series({
'name1': g.c[g.b > 4].mean(),
'name2': g.b.mean()
})))
# name1 name2
#a
#1 12.0 4.0
#2 13.5 6.5
#3 15.5 8.5
您必须手动重命名列:
g = z.groupby('a').agg(lambda x: [x[(x.b > 4)].c.mean(), x.b.mean()])
您可以将
agg
与lambda
一起使用,如下所示:
(z.groupby('a')
.apply(lambda g: pd.Series({
'name1': g.c[g.b > 4].mean(),
'name2': g.b.mean()
})))
# name1 name2
#a
#1 12.0 4.0
#2 13.5 6.5
#3 15.5 8.5
您必须手动重命名列:
g = z.groupby('a').agg(lambda x: [x[(x.b > 4)].c.mean(), x.b.mean()])
print(g)
name1 name2
a
1 12.0 4.0
2 13.5 6.5
3 15.5 8.5