python 的案例实战_python案例实战之一

分析思路:

1、明确分析目标;

2、导入库、导入数据;

3、简单查看下数据行列、整体情况;

4、数据清洗;

5、确定维度和指标;

6、分析并作图

1、查看整体数据情况

1.1引入使用的库

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

1.2加载数据文件

df = pd.read_csv('./FIFA_2018_player.csv')

1.3简单查看数据整体情况

df.head()

ec9f553714fa797824f7293533bb2549.png

数据表头说明:

ID:编号

name:球员姓名

full_name:球员全名

nationality:国籍

league:联赛

club:所属俱乐部

age:年龄

birth_date:出生日期

height_cm:身高

weight_kg:体重

eur_value:身价

eur_wage:周薪

df.describe()

07378ecf4011357103fffef7d6b6ef23.png

2、开始清理数据

数据清理-所有需要分析的数据都需要看下。

对于数值型,可以看下describe方法输出的信息,重点关注最大值,最小值,平均值,行数等。

2.1、查看整体数据量

f.count()

f8f98222083ce663c7e260aae1d1f683.png

2.2、对null值处理

通过查看各列数据量情况(非null值)发现,league字段和club字段与其他字段存在差异。存在253行的null值,对于一万条数据来说影响还好,可以删掉。

#删除数据一般放在后面进行,这里因为其他数据也是异常,所以可以先删掉

df.drop(df[df.league.isnull()].index,inplace=True)

再次查看数据情况

df.count()

6f20be91b42a043d92dd99e2fc63eb2d.png

每列数据量一致,不存在null值。

2.3、查看整体统计量情况,查看是否存在异常

df.describe()

7f374444814c2635d4f10fd8ba1b0b3f.png

此处的身价最小的为0,但工资为1000,因此存在数据失真情况。

df[df['eur_value']<100]

040cd05d7a5e71143a90ab477116f297.png

我们对身价小于100的数据进行查看,存在6行数据异常。

对此种情况可有三种处理方式:

1、由于异常数据量较少,可依次查询真实数据并重新赋值;

2、取整体平均值,对异常数据进行覆盖;

3、由于总体数据量大,可直接删除异常数据。

本案例中采取第二种方式处理

df['eur_value'].replace(0,df['eur_value'].mean(),inplace=True)

df[df['eur_value']<100]

用整体平均值对异常数据进行覆盖后,查看身价是否还存在小于100的

cf0bbd5acad325a7faa1a5e61bb43087.png

2.4、查看是否有重复数据

df[df['full_name'].duplicated()]

1266707a0ccfaea974676a4ed1b6a183.png姓名重复的数据为102行,可随便抽取一条查看

df[df['full_name']=='Moussa Dembélé']

71f925c677cb9bfce93c43abc0426c21.png

可以看到,虽姓名一致,但其他字段均不同,为重名但不同人的情况。

3、开始分析数据

3.1、整体数据量描述

df.count()

f0abb7ef36ca21db50d1839c45dc197e.png

3.2、对常用统计量做简单描述

df.describe()

624e625937eef511de992d35107964ed.png

明确维度和指标:每一列、每几列可以作为一个维度;各种统计值为指标。

对于离散型的维度,一般使用groupby分组使用;对于连续型的维度,一般分区间。

3.3、离散型维度-国家维度的运动员数量

国家维度的运动员数,为离散型,使用groupby分组,并计算总和

df.groupby('nationality',as_index=False).count()

为方便后续数据使用,因此不需要用nationality设置索引,因此使用as_index=False

bff0a1b39a6e40e97a9522c6cb30b93e.png

为方便查看,仅取国籍和数量两列,并根据球员数量进行排序

nationality_data = df.groupby('nationality',as_index=False).count()[['nationality','name']]

nationality_data.rename(columns={'name':'player_count'},inplace=True)

#按照player_count进行排序

nationality_data.sort_values('player_count',ascending=False)

b80188f272c7a0aaa66aaed924fb84e4.png

3.4、连续型维度-选取年龄为例,以年龄为维度,以不同年龄段人数为指标

bins = np.arange(15,50,5)

bins_data = pd.cut(df['age'],bins)

bin_counts = df['age'].groupby(bins_data).count()

bin_counts

8400d0960818275e51d5ae9c5df0097f.png

4、对分析结果进行可视化

bin_counts.plot(kind='pie')

fe32fb9273603cf763492759db57a72e.png

原文链接:https://blog.csdn.net/m0_46511764/article/details/105324932

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java数据结构期末复习_java数据结构复习02

1.递归问题1.1计算阶乘packageinterview.recursion;importjava.util.Scanner;public classFact {public static voidmain(String[] args) {System.out.println("请输入n的值&#xff1a;");Scanner in newScanner(System.in);int n in.nextInt();int num fact(n);Sys…

java中methods方法_java中Class.getMethod方法

Method Class.getMethod(String name, Class>... parameterTypes)的作用是获得对象所声明的公开方法该方法的第一个参数name是要获得方法的名字&#xff0c;第二个参数parameterTypes是按声明顺序标识该方法形参类型。person.getClass().getMethod("Speak", null)…

centos6 yum快速安装mysql_centos6.10 yum安装mysql 5.6-Go语言中文社区

一、检查系统是否安装其他版本的MYSQL数据#yum list installed | grep mysql#yum -y remove 文件名二、安装及配置# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm# rpm -ivh mysql-community-release-el6-5.noarch.rpm# yum repolist all | grep mysq…

二叉树两节点距离java,求二叉树中两个节点的最远距离

问题定义如果我们把二叉树看成一个图&#xff0c;父子节点之间的连线看成是双向的&#xff0c;我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。计算一个二叉树的最大距离有两个情况:情况A: 路径经过左子树的最深节…

php cli 编程,php-cli下编程如何分层架构、面向对象、统一入口文件?

以往写cli下运行的业务或者测试代码&#xff0c;总是新建文件&#xff0c;面向过程编写代码。几次之后&#xff0c;cli目录下好多文件&#xff0c;即便勉强在一个cli测试文件中写了一个类&#xff0c;也是让其中的一个方法自启动&#xff0c;要测试别的方法&#xff0c;总是要修…

php中gd为什么是乱码的,php gd库中文乱码怎么解决?

php gd库中文乱码怎么解决&#xff1f;,中文,乱码,字符,选项,字体php gd库中文乱码怎么解决&#xff1f;易采站长站&#xff0c;站长之家为您整理了php gd库中文乱码怎么解决&#xff1f;的相关内容。解决方法&#xff1a;1、网站整站使用UTF8编码&#xff0c;如果已使用GB2312…

php实现飘窗,JS实现网站图片飘窗效果,JavaScript悬浮广告(附详细代码)

原标题&#xff1a;JS实现网站图片飘窗效果&#xff0c;JavaScript悬浮广告(附详细代码)JS实现网站图片飘窗效果&#xff0c;Java悬浮广告&#xff0c;郑州SEO提供以下代码&#xff0c;仅供参考&#xff1a;飘窗效果-丁光辉博客(www.dingguanghui.com)*{margin:0px;padding:0px…

oracle中orand使用,Postgres兼容Oracle研究——orafce调研

一、背景PostgreSQL是和Oracle最接近的企业数据库&#xff0c;包括数据类型&#xff0c;功能&#xff0c;架构和语法等几个方面。甚至大多数的日常应用的性能也不会输给Oracle。但是Oracle有些函数或者包&#xff0c;默认PostgreSQL是没有的&#xff0c;需要安装orafce包来实现…

labview linux 内核 不匹配,Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退,LabVIEW就崩溃。...

Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退&#xff0c;LabVIEW就崩溃。我安装了LabVIEW pro 2017 for Linux(另外也试了2016版的都是一样的效果)&#xff0c;VISA也试了4.1.0、4.4.0、5.1.1、15.0.0、15.5.0、16.0.0、17.0.0版本都试过了&#…

kali linux子远程桌面,适用于kali linux的远程桌面开启方法(从windows xp 远程登录到kali linux )...

为了解决Windows远程桌面访问Ubuntu 12.04 之一 中提到的VNC远程桌面的缺点(见http://www.linuxidc.com/Linux/2012-07/64801.htm)&#xff0c;我们采用第二种方法XRDP&#xff0c;该方法支持多用户登录并远程桌面。1、首先参考Windows远程桌面访问Ubuntu 12.04 之安装VNC中提到…

linux装redis环境变量,linux 怎样安装redis

人到中年有点甜获取Redis1、通过官网http://redis.io/获取稳定版源码包下载地址&#xff1b;2、通过wget http://download.redis.io/releases/redis-3.0.2.tar.gz下载 源码包&#xff1b;2编译安装Redis1、解压源码安装包&#xff0c;通过tar -xvf redis-3.0.2.tar.gz解压源码&…

word2016能识别linux换行符,word文章中的换行符如何批量替换为回车符

word文件中有换行符很正常&#xff0c;但是想要将换行符全部替换为回车符&#xff0c;该怎么替换?以下是学习啦小编为您带来的关于word文章中的换行符批量替换为回车符&#xff0c;希望对您有所帮助。word文章中的换行符批量替换为回车符1、在打开的word中&#xff0c;依次点击…

linux禁用防火墙配置,CentOS Linux防火墙配置及关闭

最近在CentOS Linux下安装配置 Oracle 数据库的时候&#xff0c;总显示因为网络端口而导致的EM安装失败&#xff0c;遂打算先关闭一下防火墙。偶然看到防火墙的配置操作说明&#xff0c;感觉不错。执行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙…

C语言CASE语句嵌套,C语言中switch case语句的嵌套

给一个含有嵌套的switch case的一段完整代码&#xff1a;#include int main(){int n1;int m2;switch(n){case 1:m;case 2:n;case 3:switch(n){case 1:n;case 2:m;n;break;}case 4:m;break;default:break;}printf("%d %d",m,n);return 0;}代码看起来很简单&#xff0c…

linux dd 进度条,Progress 进度条 – DDProgressHUD

DDProgressHUDProgress 进度条&#xff0c;UIActivityIndicatorView 小菊花&#xff0c;弹窗&#xff0c;状态显示&#xff0c;高度自定义DDProgressHUD的介绍提供了四种类型的展示&#xff1a;显示无限旋转的加载图(比如小菊花&#xff0c;可以自定义)&#xff0c;显示文字信息…

Android动态图标包制作教程,安卓手机ico图标制作美化图文教程

如何让手机更加与众不同?今天我们就来学习如何利用出色的ico图标制作软件——Axialis IconWorkshop制作出美化手机屏幕的个性图标!如今&#xff0c;每个人都有属于自己的手机&#xff0c;每天使用手机聊QQ、刷微博、玩游戏&#xff0c;可以说手机已经是很多人生活中不可缺少的…

android progressbar 水平动画,Android ProgressBar 自定义样式(三),动画模式

果&#xff1a;和之前的一样&#xff0c;在布局文件中&#xff1a;android:id"id/progressBar3"android:layout_width"wrap_content"android:layout_height"wrap_content"android:indeterminate"false"android:indeterminateDrawable&…

android gridview行分割线,Android使用GridView实现表格分割线效果

使用gridview实现表格分割线效果&#xff0c;网格布局表格布局也是可以实现的。效果如下&#xff1a;1.主函数代码&#xff1a;package com.example.qd.douyinwu;import android.app.activity;import android.content.context;import android.os.bundle;import android.support…

android hook 实例,代码实例分析android中inline hook

以下内容通过1、实现目标注入程序&#xff0c;2、实现主程序&#xff0c;3、实现注入函数&#xff0c;4、thumb指令集实现等4个方面详细分析了android中inline hook的用法&#xff0c;以下是全部内容&#xff1a;最近终于沉下心来对着书把hook跟注入方面的代码敲了一遍&#xf…

dax 筛选 包含某个字_筛选状态(ALL与REMOVEFILTERS)

这一章比较绕&#xff0c;但是帮助我们理清切片器的筛选状态以及主要函数对于公式筛选上下文的改变。1.切片器的筛选状态切片器的全选与全不选的状态的区别&#xff0c;我们可以看下图&#xff1a;全不选全选多个点击筛选逐个点击至全部结论初始状态&#xff0c;没有选择任何元…