pandas 带括号的Groupby与带.“agg”的Groupby?

0x6upsns  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(264)

这两者之间的确切区别是什么

data_sex1= data_suicide.groupby(by=["year", "sex"])["suicides_no"].sum()

data_sex2 = data_suicide.groupby(by=['year', 'sex']).agg({'suicides_no': ['sum']})


我的问题是我必须修改这两个来绘制它们在海运。海运的行是这样的

sns.barplot(x="year", y="suicides_no", hue="sex", data=data_sex1)
sns.barplot(x="year", y="suicides_no", hue="sex", data=data_sex2)

现在对于上面的例子data_sex1,我必须添加下面的行来使绘图工作。因为这不仅是重置索引的方法,而且还将名称"suicides_no"添加到列中。该列以前没有名称。

data_sex1=data_sex1.reset_index()

现在对于第二个例子data_sex2,我必须添加以下代码来使绘图工作。还请注意,如果我先重置索引,然后重命名列,它也会给予我一个错误。

data_sex2.columns=["suicide_no"]    
data_sex2=data_sex2.reset_index()

所以我希望有人能真正帮助我解决这个超级令人困惑的问题。非常感谢!

klr1opcd

klr1opcd1#

如果要对不同的列应用不同的聚合函数,则需要使用agg:

df.groupby('id').agg({'x': ['mean', 'sum', 'max'], 'y': ['sum', 'min']})

另一个选项在要应用的列/聚合逻辑方面的灵活性较低。

相关问题