pandas的汇总和计算描述统计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_29957455/article/details/78997244

pandas提供了很多常用的数学和统计方法,其中大部分都属于约简和汇总统计,用于从Series中提取单个值(如sum或mean)或从DataFrame的行或列中提取一个Series。

一、DataFrame的sum和mean方法

    a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]]
    data = DataFrame(a,index=["a","b","c"],columns=["one","two","three"])
    print(data)
    '''
       one  two  three
    a    1  NaN    9.0
    b    2  8.0    3.0
    c    3  5.0    NaN
    '''
    #对列求和
    print(data.sum())
    '''
    one       6.0
    two      13.0
    three    12.0
    '''
    #对行求和
    print(data.sum(axis=1))
    '''
    a    10.0
    b    13.0
    c     8.0
    '''
    #对行求平均值,默认排除NaN值
    print(data.mean(axis=1))
    '''
    a    5.000000
    b    4.333333
    c    4.000000
    '''
    #对行求平均值,禁用自动排除NaN值
    print(data.mean(axis=1,skipna=False))
    '''
    a         NaN
    b    4.333333
    c         NaN
    '''
二、统计

    a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]]
    data = DataFrame(a,index=["0","1","2"],columns=["a","b","c"])
    print(data)
    '''
       a    b    c
    0  1  NaN  9.0
    1  2  8.0  3.0
    2  3  5.0  NaN
    '''
    #返回每一列中最大值的行索引
    print(data.idxmax())
    '''
    a    2
    b    1
    c    0
    '''
    #返回每一列中最小值的行索引
    print(data.idxmin())
    '''
    a    0
    b    2
    c    1
    '''
    #对每列的值进行累加
    print(data.cumsum())
    '''
         a     b     c
    0  1.0   NaN   9.0
    1  3.0   8.0  12.0
    2  6.0  13.0   NaN

    '''
上面的操作都是对于列,如果想要对行进行操作,只需要在方法中设置axis参数为1即可。
三、描述

a、DataFrame

    a = [[1,np.nan,9],[2,8,3],[3,5,np.nan]]
    data = DataFrame(a,index=["0","1","2"],columns=["a","b","c"])
    print(data)
    '''
       a    b    c
    0  1  NaN  9.0
    1  2  8.0  3.0
    2  3  5.0  NaN
    '''
    #列出DataFrame的描述
    '''
    四分位数用于绘制箱线图判断是否为异常值
    count:该列(行)非NA值的个数
    mean :该列(行)的均值
    std  :该列(行)的方差
    25%  :上四分位数
    50%  :非NA值的平均数
    75%  :下四分位数
    max  :最大值
    '''
    print(data.describe())
    '''
             a        b         c
    count  3.0  2.00000  2.000000
    mean   2.0  6.50000  6.000000
    std    1.0  2.12132  4.242641
    min    1.0  5.00000  3.000000
    25%    1.5  5.75000  4.500000
    50%    2.0  6.50000  6.000000
    75%    2.5  7.25000  7.500000
    max    3.0  8.00000  9.000000    
    '''
b、Series

如果值是数值型的描述与DataFrame一致,下面展示当值为非数值的时候的描述。

    s = Series(["a","b","b","d"])
    print(s)
    '''
    0    a
    1    b
    2    b
    3    d
    '''
    print(s.describe())
    '''
    count     4
    unique    3
    top       b
    freq      2
    '''
除了上面提到的方法之外,pandas还提供了许多的方法,如下表






没有更多推荐了,返回首页