【问题标题】:Uniting rows calculating mean/sum联合行计算平均值/总和
【发布时间】:2018-10-09 05:46:28
【问题描述】:

我有以下数据框:

a=pandas.dataframe(col=["hschool","year","type","grade","stud"],[[0,2010,pu,5,1],[1,2011,pri,3,10],[2,2010,pu,2,3],[1,2010,pri,3,7],[2,2011,pu,2,8],[0,2011,pu,1,8],[1,2010,pri,0,2],[3,2010,pu,6,3]])

我想删除“hschool”列,并将不同的“year”和“type”值与平均“grade”和“stud”的总和结合起来。 我尝试使用以下方法,但我得到了平均成绩和平均学生人数。

a.drop(labels=["hschool"],axis=1,inplace=True)
a = a.groupby(["year","type"])
a=a.mean()

有什么建议吗?

【问题讨论】:

    标签: pandas dataframe mean


    【解决方案1】:

    如果你想要不同列的不同功能,你想在groupby上使用.agg()。将最后两行替换为:

    a = a.groupby(["year","type"]).agg({'grade': 'mean', 'stud': 'sum'})
    #              grade  stud
    #year type                
    #2010 pri   1.500000     9
    #     pu    4.333333     7
    #2011 pri   3.000000    10
    #     pu    1.500000    16
    

    【讨论】:

    • 谢谢! @ALollz
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多