Python数据分析随笔(一)

在用Python做数据处理时,我都会习惯性的使用describe()函数,因为小编最先接触到的是用R语言进行处理,R语言常用的几个统计函数包括summary()和describe(),其中R的summary()函数和Python的describe()函数的差不多,差不多需要的统计结果都能通过这个函数得出。这个时候,小编就有疑问,当数据含有缺失值时,进行平均值,中位数受缺失值的影响,平均值和中位数是否准确。R和Python官方介绍统计函数会忽视缺失值,下面是小编写的程序进行测试。


import seaborn as sns
import pandas as pd
import numpy as np
#去除指定列的空值,并统计该数据
#使用dropna(subset=列/列表)删除指定列函数
#然后使用describe进行统计,统计结果组成新的数据框
#由于describe()函数自带忽略空值,本次试验用于测试describe()是否与循环结果一致,去除了缺失值(空值)对统计结果的影响

def test_data():
    
    planets = sns.load_dataset('planets')#读入数据
    col = list(planets.columns)
    
    #isinstance()函数不能直接判断对象类型数据,会导致判断不成功
    #采用获取数据框类型数据,转换为字符串数据进行判断

    for i in col:
        
        if (str(planets[i].dtype) == 'object'):  col.remove(i)
            
    a = pd.DataFrame(columns=col) #新建一个空白数据框
    
    for i in col:
       a[i] = dropn(planets,i)
       
    return a,planets 

def dropn(planets,colname):
    
    data = planets[colname].dropna()
    a = data.describe()
    
    return a

if __name__ == '__main__':
    
    a,planets = test_data()
    print('测试结果',a)
    print('内置函数结果',planets.describe())

测试结果显示如下:

测试结果显示一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值