python软件设计数据分析统计服_学习笔记(一)-python制作数据分析工具
本文使用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制作数据分析工具相关推荐
- python r语言 数据分析统计服_【分享】Python和R语言的数据分析/挖掘工具互查
数极客,拥有16种数据分析模型的新一代用户行为分析平台! 写在前面 在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种.当然,这篇博客还会随时更新(不会另起一篇,为了 ...
- 开课吧python爬虫数据分析统计服_使用爬虫分析Python岗位招聘情况
职位要求 提取了所有的职位要求,进行分词统计,清理没意义的词,统一英文字符,如 Python 和 python 不区分大小. 提取前 50 个中文词汇以及出现次数,这个词频排序挺有趣的,要来好好研究一 ...
- python爬取b站视频封面_学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面...
学习笔记(4)[Python爬虫]:爬取B站搜索界面的所有视频的封面 import os import requests import re import json from bs4 import B ...
- 基于python的气象数据分析统计服_基于Python的风向风速数据分析的设计与实现
基于 Python 的风向风速数据分析的设计与实现 李文倩 ; 刘婕 [期刊名称] < <信息通信> > [年 ( 卷 ), 期] 2019(000)009 [摘要] Pyth ...
- python excel 数据分析统计服_数据分析从入门到进阶(透彻讲解EXCEL.SQL.TABLEAU、PYTHON四项数据分析必会工具.免费提供1GB数据集...
透彻讲解Excel.SQL.Tableau.Python四项数据分析必会工具,数据分析工作者的案头推荐工具书.系统介绍数据分析的策略.方法(数据分析之道):实例讲解引导.快速掌握数据分析工具(数据分析 ...
- python使用excel数据分析统计服_像Excel一样使用python进行数据分析
Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作.在Python中pandas库用于数据处理 ...
- python 廖雪峰数据分析统计服_廖雪峰python教程阅读量统计
统计了下廖老师的python教程各个小节的阅读量(毫无卵用),廖老师网站反爬做的比我们教务系统可是好多了,一定时间内访问次数多会禁止,反正数据量也不多,就慢慢来,基本上也不会对网站造成什么影响. 刚学 ...
- python爬取b站评论_学习笔记(1):写了个python爬取B站视频评论的程序
学习笔记(1):写了个python爬取B站视频评论的程序 import requests import json import os table='fZodR9XQDSUm21yCkr6zBqiveY ...
- python的创始人、特点应用领域_python学习笔记(python发展介绍)
一.python介绍 python的创始人为吉多・范罗苏姆(Guido van Rossum) 目前python主要应用领域: ・云计算 ・WEB开发 ・科学运算.人工智能 ・系统运维 ・金融:量化交 ...
最新文章
- 科普:教你如何看懂 JavaGC 日志
- bayer格式插值算法实现
- seq2seq nlp 这篇博文的引用相当好
- ThreadLocal模式的一点小理解
- 正则化方法之DropBlock
- 第01课:中文自然语言处理的完整机器处理流程
- iOS--控制器加载自定义view的xib
- java 线程 listview_android使用Thread实现json数据的传递,并且使用ListView显示
- Hadoop2.8集群安装详细教程
- Linux常用的基本命令13
- Python 安装配置VLFeat
- Winxp 中文版 使用 IDM,补丁
- nios 双核 烧录_Nios程序烧写到EPCS方法
- Java 实现计算器功能
- android怎么实现推送消息推送消息,Android实现系统消息推送
- php中空格怎么表示什么,HTML中的空格符号是什么
- 微信小游戏开发实战教程13-随机生成形状功能的实现
- Python实现PDF(图片版)水印的去除
- airtest获取设备号和获取设备宽度、高度、绝对坐标 相对坐标、滑动屏幕
- 赋权边覆盖问题——采用禁忌搜索算法的C++实现
热门文章
- 用计算机画小鸡,水墨电脑画--丝瓜小鸡图
- GoldenGate添加进程及初始化
- 树莓派通过snowboy唤醒引擎(Python2、Python3的都可以),自定义唤醒词、关键字,达到小爱同学、天猫精灵一样的唤醒方式的全套教程
- android之RecyclerView.Adapter介绍
- 成功解决: 支付宝报错钓鱼网站
- 声光控延时开关设计原理
- 2o2021年安徽高考成绩查询,2021安徽高考数学答案-2021年安徽高考数学试题及答案...
- python抓取京东联盟优惠券_[爬虫]使用python抓取京东全站数据(商品,店铺,分类,评论)...
- 日裔美国人推出「推特观察」twitter排行榜,10小时制作10小时爆红
- 微信小程序外包 很可能遇到很多坑 提供源代码 需要小程序定制的联系 定制开发