分组计算均值_Python Pandas Groupby教程:数据分组展示

大家好,这是近期学习的data analysis 那本书的总结,发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,小白也能懂,因为自己就是什么基础没有从零学Python的。


今天,学习了如何组织Pandas数据框。更具体地说,就是如何按一个或多个属性对数据框进行分组。首先,我们将Pandas作为pd导入,并使用read_csv方法将CSV文件读入。下面的示例中,我们用 index_col = 0,因为数据集中的第一行是索引列。这个数据你也可以用哈,链接在图中。

1d876c3429b90fa9a66619f2fc4df6ca.png

可以看见数据形式如下:

f220baf5c8a88d23394375ae3155757b.png

在上图中,我们可以看到至少可以按三个变量可以对数据进行分组。也就是说,我们可以按“rank”,“discipline”和“sex”对数据进行分组。当然,你愿意的话也可以按yrs.since.phd或yrs.service对其进行分组,但会有很多组,也就没有分组的意义了。


Python Pandas Groupby示例

我们从最简单的示例开始。按一列也就是某一个属性分组。具体来说,在下图中,我按“等级”列进行分组。

519216b13c0e2b1970615ea6f12dbf89.png

这个时候我们已经将数据按rank属性分成了3组,下图中可以看到每组的数量

9f66009ca05f273ac4903935039012bd.png

我们还可以选择某一个组,比如选择“助理教授”组(即“ AsstProf”)将其打印出来。下图中我们可以看到所有的AsstProf组都被get到了。

9fe25091aba3a96cbbbc4c839441dc52.png

分组后计算每组的均数

这个就很常用了,就是我们拿到数据后按照分类变量进行分组,然后计算各组均值。如果我们要计算每一组的平均工资,很简单。我们只对分组数据框使均值方法,如下图就行:

1162b5f6cd1d28f2ca37b825f9103d9f.png

这个时候我们看,计算出了各组的平均“salary”都被计算出来了,但是有一个问题。例如,如果其他人要看表,他们可能不知道这是每个组的平均工资。我们这个时候就可以在上面的代码中添加重命名方法来重命名分组数据的列名:

26f4afd4ec512c6450d27440560ece90.png

这样,别人看到这个表格也知道什么意思了,因为上面有列名“mean salary”


使用groupby方法按组汇总数据

大多数时候,我们希望将统计信息放在同一张表上。我们可以使用agg方法按组进行汇总。下图这个例子就是将常见的描述统计量汇总到一个表中:

7376b921a499928d3f6b993164c27848.png

哈哈,是不是很有意思。


按多个属性分组

我们继续,这个例子中,我们将按许多列(也就是多属性)进行分组。比如按“纪律”和“排名”两列进行分组。要将Pandas groupby与多个列一起使用,我们需要添加一个包含列名的列表。在下图中,分组后我用get_group方法get到了所有discipline为A的副教授的信息:

018218292b1691b6802ffc4e9e46fcfe.png

哈哈,今天就到这儿吧,感谢您看完,欢迎交流。一个小白的编程进阶之路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值