来源:天善智能韦玮老师 课堂笔记
作者:Dust
探索性数据分析Exploratory Data Analysis,EDA

数据探索的核心是︰
1、数据质量分析(跟数据清洗密切联系)
2、数据特征分析(分布、对比、周期性、相关性、常见统计量等)

数据清洗可以按如下步骤进行︰
1、缺失值处理(通过describe与len直接发现、通过0数据发现)2、异常值处理(通过散点图发现)
一般遇到缺失值,处理方式为(删除、插补、不处理);
插补的方式主要有:均值插补、中位数插补、众数插补、固定值插补、最近数据插补、回归插补、拉格朗日插值、牛顿插值法、分段插值等等。
遇到异常值,一般处理方式为视为缺失值、删除、修补(平均数、中位数等等)、不处理。

代码中用到的文件:

链接:https://pan.baidu.com/s/1Oxr5XGtcA0HnRi4IUaVSLQ 
提取码:1234 
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V4的分享


数据清洗:

import pandas as pda
import numpy as npy
import matplotlib.pylab as pyl
import warnings
warnings.filterwarnings("ignore", category=Warning)

data=pda.read_csv("E:/Python3.7/data/starcraft1.csv")
print(data.describe())

# 数据清洗
# 发现缺失值

x = 0
print("len=",len(data))
data["Age"][(data["Age"]<18)]=None # 所有18岁以下的设置为空值
for i in data.columns:
    for j in range(len(data)):
        if(data[i].isnull())[j]:
            data[i][j]="18" #所有空值改为18
            x += 1
print("The number of players under 18 is:",x)


 

异常值处理:

我跑不出来了,也不知道为什么一直算反正就是跑不出来,,,

希望有大佬能跑出来吧- -

# 异常值处理
# 画散点图(横轴为id,纵轴为Age)
# 年龄异常:>100

data2=data.T
id=data2.values[0]
age=data2.values[1]
pyl.plot(id,age)
pyl.show()
line=len(data.values)
col=len(data.values[0])
da=data.values
for i in range(0,line):
    for j in range(0,col):
        if(da[i][1]>100): # 找到年龄大于100的玩家
            print(data[i][j]) # 打印出玩家的信息
            da[i][1]=50 # 强制变为50岁