Pandas 数据分析-第十章(汇总和描述)

Pandas对象拥有一组常用的数字和统计方法,这一章就简单的说一下这些方法

sum()

我们就直接来看看示例吧

In [4]: df = pd.DataFrame({"one":[1.4,2.0,np.nan,0.22],"two":[np.nan,-2.4,np.nan
   ...: ,-3]},index=list("abcd"))                                               

In [5]: df                                                                      
Out[5]: 
    one  two
a  1.40  NaN
b  2.00 -2.4
c   NaN  NaN
d  0.22 -3.0

In [6]: df.sum()                                                                
Out[6]: 
one    3.62
two   -5.40
dtype: float64

我们生成了一个DataFrame,SUM会返回一个含有列小计的Series,
我们想求行上的合计就需要添加参数

In [9]: df.sum(axis=1)                                                          
Out[9]: 
a    1.40
b   -0.40
c    0.00
d   -2.78
dtype: float64

这里我们注意到index=“c”这一行的求和得到的是0,明明之前是Nan,在sum函数中其实还有一个参数skipna,代表了是否排除缺失值,默认情况是True。

In [11]: df.sum(axis=1,skipna=False)                                            
Out[11]: 
a     NaN
b   -0.40
c     NaN
d   -2.78
dtype: float64

(有些版本的pandas在使用此类函数时Nan和Nan相加即使在skipna=True时计算结果依旧是Nan,我当前使用的pandas在此情况下两个nan相加则为0)

mean()

mean方法返回平均值

In [12]: df.mean()                                                              
Out[12]: 
one    1.206667
two   -2.700000
dtype: float64

有一些方法(idxmin,idxmax)返回的是间接统计

idxmax()

返回最大值的索引

In [57]: df.idxmax()                                                                              
Out[57]: 
one    b
two    b
dtype: object

idxmin()

返回最小值的索引

In [58]: df.idxmin()                                                                              
Out[58]: 
one    d
two    d
dtype: object

cumsum()

返回累计和

In [59]: df.cumsum()                                                                              
Out[59]: 
    one  two
a  1.40  NaN
b  3.40 -2.4
c   NaN  NaN
d  3.62 -5.4

descirbe()

返回针对Series或DataFrame列的多种统计

In [60]: df.describe()                                                                            
Out[60]: 
            one       two
count  3.000000  2.000000
mean   1.206667 -2.700000
std    0.905612  0.424264
min    0.220000 -3.000000
25%    0.810000 -2.850000
50%    1.400000 -2.700000
75%    1.700000 -2.550000
max    2.000000 -2.400000

返回了很多统计值,
对于非数值型的数据,describe()`会产生一种汇总统计

In [68]: obj = pd.Series(['a','a','b','c']*4)                                                     

In [69]: obj                                                                                      
Out[69]: 
0     a
1     a
2     b
3     c
4     a
5     a
6     b
7     c
8     a
9     a
10    b
11    c
12    a
13    a
14    b
15    c
dtype: object

In [70]: obj.describe()                                                                           
Out[70]: 
count     16
unique     3
top        a
freq       8
dtype: object

分别是计数,去重后计数,出现次数做多的元素和其出现次数。

方法说明
count计算非Na值的数量
describe多种统计描述
min最小值
max最大值
idxmax最大值索引
idxmin最小值索引
quantile计算样本的分位数
mean平均数
median中位数
std标准差
var方差
cumsum累积和
cummax累计最大值
cummin累计最小值
cumprod累计乘积
diff一阶差分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值