亲宝软件园·资讯

展开

Pandas DataFrame运算统计与排序

Jackson_Wang 人气:0

在前面的章节中,我们讨论了Series的计算方法与Pandas的自动对齐功能。不光是Series,DataFrame也是支持运算的,而且还是经常被使用的功能之一。

由于DataFrame的数据结构中包含了多行、多列,所以DataFrame的计算与统计可以是用行数据或者用列数据。为了更方便我们的使用,Pandas为我们提供了常用的计算与统计方法:

操作方法操作方法
求和sum最大值max
求均值mean最小值min
求方差var标准差std
中位数median众数mode
分位数quantile  

一.运算

接上文的例子,我们已经有了N个学生的数学、语文、英语的成绩表,现在,我们要算出每个学生的总成绩,那么我们就可以用以下的方法:

'''
行的求和以下演示两种方法:
方法1:先把待求和的列数据删选出来(剔除掉name列),然后使用sum函数求和
方法2:把待求和的列一个一个选出来然后使用运算符求和
两种方法最后的结果为像原有的DataFrame中新增一列,数据为每行数据的求和
'''
df['sum'] = df[['chinese', 'math', 'english']].sum(1)	#方法1

df['sum'] = df['chinese'] + df['math'] + df['english']	#方法2

Output:
        name  chinese  english  math  sum
0   XiaoMing       99      100    80  279
1      LiHua      102       79    92  273
2  HanMeiNei      111      130   104  345

在sum方法中我们传入了参数1,代表的是我们使用的轴(axis)为行(对行数据进行求和),如果想要计算出每列的求和我们只用传入0即可(sum函数默认参数为0,所以也可不传):

df[['chinese', 'math', 'english']].sum(0)

Output:
chinese    312
math       276
english    309
dtype: int64

现在有了总成绩,那么数学老师或者语文老师就会关心本班学生的数据平均分是多少,同样的,我们可以非常快速的计算出来:

df['math'].mean()		#方法一:直接使用Pandas提供的mean求均值方法

df['math'].sum() / df.shape[0]	#方法二:使用求和方法算出总和后除以总人数(行数)

Output:
92.0

加载全部内容

相关教程
猜你喜欢
用户评论