pandas对象拥有一组常用的数学和统计方法,大部分都属于约简和汇总统计,用于从Series中提取单个的值,或者从DataFrame中的行或列中提取一个Series。相比Numpy而言,Numpy都是基于没有缺失数据的假设而构建的。
来看一个简单的例子
In [6]: df=DataFrame([[1.4,np.nan],[7,-4],[np.nan,np.nan],[0.75,-1.3]],index=['a
...: ','b','c','d'],columns=['one','two'])
在df中,有些行的数据是空的,没有实际意义
In [7]: df
Out[7]:
one two
a 1.40 NaN
b 7.00 -4.0
c NaN NaN
d 0.75 -1.3
但是在用sum计算的时候依然能够计算出每一列的值
In [8]: df.sum()
Out[8]:
one 9.15
two -5.30
dtype: float64
传入axis=1会按照行的方式进行计算
In [9]: df.sum(axis=1)
Out[9]:
a 1.40
b 3.00
c 0.00
d -0.55
dtype: float64
约简方法的选项:
间接统计(比如达到最小值和最大值的索引)
In [10]: df.idxmax()
Out[10]:
one b
two d
dtype: object
In [11]: df.max()
Out[11]:
one 7.0
two -1.3
dtype: float64
累加型:
In [12]: df.cumsum()
Out[12]:
one two
a 1.40 NaN
b 8.40 -4.0
c NaN NaN
d 9.15 -5.3
还有一种比较强大的方法describe用于一次性产生多个汇总统计。其中mean为平均值,std为标准差
In [13]: df.describe()
Out[13]:
one two
count 3.000000 2.000000
mean 3.050000 -2.650000
std 3.436204 1.909188
min 0.750000 -4.000000
25% 1.075000 -3.325000
50% 1.400000 -2.650000
75% 4.200000 -1.975000
max 7.000000 -1.300000
描述和汇总的方法:
唯一值,值计数以及成员资格
还有一类方法可以从一维Series的值中抽取信息。以下面这个Series为例
In [15]: obj=Series(['c','a','d','a','a','b','