本文使用numpy、pandas、scipy等依赖包,利用python制作数据分析工具,了解数据的特征分布、缺失、异常情况,实现数据的预处理。常用的描述性统计指标主要包括基本均值、中位数、最大最小值、计数类等。

0、依赖包导入

# -*-coding:utf-8-*-

from __future__ import division

import pandas as pd

import numpy as np

from scipy import stats

1、数据读取

##Read Data##

df = pd.read_csv("train.csv")

label = df['TARGET']

df = df.drop(['ID','TARGET'],axis=1)

2、缺失值设置

##Basic Analysis##

#Missing Value#

missSet = [np.nan,9999999999,-999999]

3、计数类

#Count distinct#

len(df.iloc[:,0].unique())

count_un = df.iloc[:,0:3].apply(lambda x:len(x.unique())) #apply函数:遍历每一列

4、0值出现次数

#Zero Values#

np.sum(df.iloc[:,0] ==0)

count_zreo = df.iloc[:,0:3].apply(lambda x:np.sum(x == 0))

5、均值

#Mean Values#

np.mean(df.iloc[:,0]) #没有去除缺失值之前的均值很低

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)] #去除缺失值

np.mean(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)]) #去除缺失值后进行均值计算

df_mean=df.iloc[:,0:3].apply(lambda x:np.mean(x[~np.isin(x,missSet)]))

6、中位数

#Median Values#

np.median(df.iloc[:,0]) #没有去除缺失值之前

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)] #去除缺失值

np.median(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)])

df_median=df.iloc[:,0:3].apply(lambda x:np.median(x[~np.isin(x,missSet)])) #去除缺失值之后进行计算

7、众数和众数比例

#Mode Values#

df_mode = df.iloc[:,0:3].apply(lambda x: stats.mode(x[~np.isin(x,missSet)])[0][0])

#Mode Percentage#

df_mode_count = df.iloc[:,0:3].apply(lambda x: stats.mode(x[~np.isin(x,missSet)])[1][0])

df_mode_perct = df_mode_count/df.shape[0]

8、最大最小值

#Min Values#

np.min(df.iloc[:,0])

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)] #去除缺失值

np.min(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)])

df_min = df.iloc[:,0:3].apply(lambda x:np.min(x[~np.isin(x,missSet)]))

#Max Values#

np.max(df.iloc[:,0])

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)]

np.max(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)])

df_max=df.iloc[:,0:3].apply(lambda x:np.max(x[~np.isin(x,missSet)]))

9、分位点

#quantile values分位点#

np.percentile(df.iloc[:,0],(1,5,25,50,75,95,99))

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)]

np.percentile(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)],(1,5,25,50,75,90,99))

#无法做apply操作

json_quantile = {} #定义一个字典存储遍历结果

for i,name in enumerate(df.iloc[:,0:3].columns):

print('the {} columns: {}'.format(i,name))

json_quantile[name]= np.percentile(df[name][~np.isin(df[name],missSet)],(1,5,15,25,75,95,99))

#对返回结果重新排序并转置,便于后期拼接

df_quantile = pd.DataFrame(json_quantile)[df.iloc[:,0:3].columns].T

10、频数

#Frequent Values

df.iloc[:,0].value_counts().iloc[0:5,]

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)]#去除缺失值

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)].value_counts()[0:5]

json_fre_name = {}

json_fre_count = {}

def fill_fre_top_5(x):

if len(x) <= 5:

new_array = np.full(5,np.nan)

new_array[0:len(x)] = x

return new_array

df['ind_var1_0'].value_counts()

df['imp_sal_var16_ult1'].value_counts()

for i,name in enumerate(df[['ind_var1_0','imp_sal_var16_ult1']].columns):

#Index Name

index_name = df[name][~np.isin(df[name],missSet)].value_counts().iloc[0:5,].index.values

#if the length of array is less than 5

index_name = fill_fre_top_5(index_name)

json_fre_name[name]=index_name

#Value Count

values_count = df[name][~np.isin(df[name], missSet)].value_counts().iloc[0:5,].values

#if the length of array is less than 5

values_count = fill_fre_top_5(values_count)

json_fre_count[name] = values_count

df_fre_name = pd.DataFrame(json_fre_name)[df[['ind_var1_0','imp_sal_var16_ult1']].columns].T

df_fre_count = pd.DataFrame(json_fre_count)[df[['ind_var1_0','imp_sal_var16_ult1']].columns].T

df_fre = pd.concat([df_fre_name,df_fre_count],axis =1)

11、缺失值统计

#Miss Values

np.sum(np.isin(df.iloc[:,0],missSet))#统计缺失值

df_miss = df.iloc[:,0:3].apply(lambda x:np.sum(np.isin(x,missSet)))#遍历每个遍历的缺失值情况

12、方差和标准差

标准差(或方差)分为 总体标准差(方差)和 样本标准差(方差)。

其中,前者分母为n,后者为n-1。后者是无偏的。

pandas里的 .std() 和 .var() 都是无偏的;.values.mean(),.values.std(), .values.var()都是有偏的。

#方差

np.std(df.iloc[:,0]) #没有去除缺失值之前的方差

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)] #去除缺失值

np.std(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)]) #去除缺失值后进行均值计算

df_std=df.iloc[:,0:3].apply(lambda x:np.std(x[~np.isin(x,missSet)]))

#标准差

np.var(df.iloc[:,0]) #没有去除缺失值之前的方差

df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)] #去除缺失值

np.var(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)]) #去除缺失值后进行均值计算

df_var=df.iloc[:,0:3].apply(lambda x:np.var(x[~np.isin(x,missSet)]))

python软件设计数据分析统计服_学习笔记(一)-python制作数据分析工具相关推荐

  1. python r语言 数据分析统计服_【分享】Python和R语言的数据分析/挖掘工具互查

    数极客,拥有16种数据分析模型的新一代用户行为分析平台! 写在前面 在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种.当然,这篇博客还会随时更新(不会另起一篇,为了 ...

  2. 开课吧python爬虫数据分析统计服_使用爬虫分析Python岗位招聘情况

    职位要求 提取了所有的职位要求,进行分词统计,清理没意义的词,统一英文字符,如 Python 和 python 不区分大小. 提取前 50 个中文词汇以及出现次数,这个词频排序挺有趣的,要来好好研究一 ...

  3. python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...

    学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...

  4. 基于python的气象数据分析统计服_基于Python的风向风速数据分析的设计与实现

    基于 Python 的风向风速数据分析的设计与实现 李文倩 ; 刘婕 [期刊名称] < <信息通信> > [年 ( 卷 ), 期] 2019(000)009 [摘要] Pyth ...

  5. python excel 数据分析统计服_数据分析从入门到进阶(透彻讲解EXCEL.SQL.TABLEAU、PYTHON四项数据分析必会工具.免费提供1GB数据集...

    透彻讲解Excel.SQL.Tableau.Python四项数据分析必会工具,数据分析工作者的案头推荐工具书.系统介绍数据分析的策略.方法(数据分析之道):实例讲解引导.快速掌握数据分析工具(数据分析 ...

  6. python使用excel数据分析统计服_像Excel一样使用python进行数据分析

    Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作.在Python中pandas库用于数据处理 ...

  7. python 廖雪峰数据分析统计服_廖雪峰python教程阅读量统计

    统计了下廖老师的python教程各个小节的阅读量(毫无卵用),廖老师网站反爬做的比我们教务系统可是好多了,一定时间内访问次数多会禁止,反正数据量也不多,就慢慢来,基本上也不会对网站造成什么影响. 刚学 ...

  8. python爬取b站评论_学习笔记(1):写了个python爬取B站视频评论的程序

    学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...

  9. python的创始人、特点应用领域_python学习笔记(python发展介绍)

    一.python介绍 python的创始人为吉多・范罗苏姆(Guido van Rossum) 目前python主要应用领域: ・云计算 ・WEB开发 ・科学运算.人工智能 ・系统运维 ・金融:量化交 ...

最新文章

  1. 科普:教你如何看懂 JavaGC 日志
  2. bayer格式插值算法实现
  3. seq2seq nlp 这篇博文的引用相当好
  4. ThreadLocal模式的一点小理解
  5. 正则化方法之DropBlock
  6. 第01课:中文自然语言处理的完整机器处理流程
  7. iOS--控制器加载自定义view的xib
  8. java 线程 listview_android使用Thread实现json数据的传递,并且使用ListView显示
  9. Hadoop2.8集群安装详细教程
  10. Linux常用的基本命令13
  11. Python 安装配置VLFeat
  12. Winxp 中文版 使用 IDM,补丁
  13. nios 双核 烧录_Nios程序烧写到EPCS方法
  14. Java 实现计算器功能
  15. android怎么实现推送消息推送消息,Android实现系统消息推送
  16. php中空格怎么表示什么,HTML中的空格符号是什么
  17. 微信小游戏开发实战教程13-随机生成形状功能的实现
  18. Python实现PDF(图片版)水印的去除
  19. airtest获取设备号和获取设备宽度、高度、绝对坐标 相对坐标、滑动屏幕
  20. 赋权边覆盖问题——采用禁忌搜索算法的C++实现

热门文章

  1. 用计算机画小鸡,水墨电脑画--丝瓜小鸡图
  2. GoldenGate添加进程及初始化
  3. 树莓派通过snowboy唤醒引擎(Python2、Python3的都可以),自定义唤醒词、关键字,达到小爱同学、天猫精灵一样的唤醒方式的全套教程
  4. android之RecyclerView.Adapter介绍
  5. 成功解决: 支付宝报错钓鱼网站
  6. 声光控延时开关设计原理
  7. 2o2021年安徽高考成绩查询,2021安徽高考数学答案-2021年安徽高考数学试题及答案...
  8. python抓取京东联盟优惠券_[爬虫]使用python抓取京东全站数据(商品,店铺,分类,评论)...
  9. 日裔美国人推出「推特观察」twitter排行榜,10小时制作10小时爆红
  10. 微信小程序外包 很可能遇到很多坑 提供源代码 需要小程序定制的联系 定制开发