python pandas库的学习笔记三数据操作


一、汇总和计算描述性统计


pandas对象拥有一组常用的数学和统计方法。他们大部分都属于约简和汇总统计,用于从Series中提取单个值(如mean或sum)或从DataFrame的行或列中提取一个Series。跟对应的NumPy数组方法相比,他们都是基于没有缺失数据的假设而构建的。

下面是一个简单的DataFrame:

>>> import numpy as np
>>> import pandas as pd
>>> from pandas import Series,DataFrame
>>> df=DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0.75,-1.3]],index=['a','b','c','d'],columns=['one','two']
... )
>>> df
    one  two
a  1.40  NaN
b  7.10 -4.5
c   NaN  NaN
d  0.75 -1.3
调用DataFrame的sum方法将会返回一个含有列的小计的Series:

>>> df.sum()
one    9.25
two   -5.80
dtype: float64
通过设置axis=1 可以按行进行求和计算。

NA值将会被自动剔除,除非整个切片都是NA。通过skipna选项可以禁用该功能。

下面为一些约简方法常用选项:

有些方法(如idxmin和idxmax)返回的是间接统计(比如达到最大值或最小值的索引):

>>> df
    one  two
a  1.40  2.5
b  7.10 -4.5
c   NaN  NaN
d  0.75 -1.3
>>> df.idxmax()
one    b  #第one列最大的一行
two    a   #第two列最大的一行
dtype: object
一些方法则是累计型的:
>>> df.cumsum() #将每一行逐次累加
    one  two
a  1.40  2.5
b  8.50 -2.0
c   NaN  NaN
d  9.25 -3.3
还有一些方法,既不是约简型也不是累计型
>>> df.describe()
            one       two
count  3.000000  3.000000
mean   3.083333 -1.100000
std    3.493685  3.504283
min    0.750000 -4.500000
25%    1.075000 -2.900000
50%    1.400000 -1.300000
75%    4.250000  0.600000
max    7.100000  2.500000
对于非数值型的数据,describe会产生另一种汇总统计:

>>> obj=Series(['a','a','b','c']*4)
>>> obj.describe()
count     16
unique     3
top        a
freq       8
dtype: object
下表列出了所有与描述统计相关的方法:



唯一值、值计数以及成员资格

从一维Series的值中抽取信息。以下这个Series为例:

obj=Series(['c','a','d','a','a','b','b','c','c'])
使用unique函数,可以去除Series中的重复值,获得唯一值数组:

>>> obj.unique()
array(['c', 'a', 'd', 'b'], dtype=object)
value_counts 用于计算一个Series中各值出现的频率:

>>> obj.value_counts()
c    3
a    3
b    2
d    1
dtype: int64
为了方便查看,结果Series是按值频率降序排列的。
value_counts 还是一个顶级的pandas方法,可用于任何数组的或序列:
isin用于判断矢量化最集合的成员资格(值是否存在与集合中),可用于选取Series中或DataFrame列中的数据的子集:

>>> obj.isin(['b','c'])
0     True
1    False
2    False
3    False
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值