wordpress主题 外贸网站,wordpress 文章颜色,成品网站软件大全下载,河南建筑公司实力排名目录#xff1a;
学习目标空值和缺失值查看缺失值 加载数据并通过info函数初步查看缺失值情况df.isnull().sum()空值数量统计Missingno库对缺失值的情况进行可视化探查 安装missingno库missingno.bar(df)缺失值数量可视化missingno.matrix(df)缺失值位置的可视化missingno.he…目录
学习目标空值和缺失值查看缺失值 加载数据并通过info函数初步查看缺失值情况df.isnull().sum()空值数量统计Missingno库对缺失值的情况进行可视化探查 安装missingno库missingno.bar(df)缺失值数量可视化missingno.matrix(df)缺失值位置的可视化missingno.heatmap(df)缺失值之间相关性可视化缺失值的处理 dropna删除缺失值fillna固定值填充缺失值fillna前后值填充缺失值interpolate线性插值总结项目地址
1.学习目标 知道空值和缺失值的区别以及缺失值的影响 知道如何查看数据集缺失值情况的方法 知道缺失值处理的办法 2.空值和缺失值
在Pandas中空值和缺失值是有区别的缺失值包含了空值 好多数据集都含缺失数据。缺失数据有多重表现形式 数据库中缺失数据表示为NULL 在某些编程语言中用NA或None表示 缺失值也可能是空字符串或数值 0 在Pandas中使用NaN表示缺失值 Pandas中的NaN值来自Numpy库Numpy中缺失值有几种表示形式NaNNANnan他们都一样 除了Pandas中的空值以外上述类型的缺失值都可以使用replace函数统一替换为NaN NaN表示空值 NaN是pandas中的特殊的数据结构来源于numpy包的特殊数据结构 NaN毫无意义 NaN不等于0 也不等于空字符串 更不等于布尔值False 并且两个NaN也不相等
# 使JupyterNotebook单个cell可以有多个输出
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity allfrom numpy import NaN,NAN,nan# 缺失值和其它类型的数据不同它毫无意义NaN不等于0也不等于空字符串
NaNTrue
NaNFalse
NaN0
NaN
NaNNone# 两个NaN也不相等
NaNNaN
NaNnan
NaNNAN
nanNAN 3.查看缺失值
加载数据并通过info函数初步查看缺失值情况 加载印度城市空气质量数据集并初步查探缺失值
import pandas as pd# 加载印度城市空气质量数据集
# index_colDate 指定Date列作为索引列
# parse_datesTrue 将Date列中的数据解析为时间类型
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)
print(city_day)
print(city_day.info())isnull函数和notnull函数判断是否存在空值
import pandas as pd# 加载印度城市空气质量数据集
# index_colDate 指定Date列作为索引列
# parse_datesTrue 将Date列中的数据解析为时间类型
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)# 空值返回True
print(city_day.isnull())
print(city_day[PM2.5].isnull())isnull的返回值中存在Trueany()就返回True
import pandas as pd# 加载印度城市空气质量数据集
# index_colDate 指定Date列作为索引列
# parse_datesTrue 将Date列中的数据解析为时间类型
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)print(city_day.isnull().any())
print(city_day.isnull().any().any())
print(city_day[PM2.5].isnull().any())notnull函数和notna函数相同判断是否存在非空值与isnull函数对应返回结果正好相反
import pandas as pd# 加载印度城市空气质量数据集
# index_colDate 指定Date列作为索引列
# parse_datesTrue 将Date列中的数据解析为时间类型
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)# 空值返回False
print(city_day.notna())
print(city_day[PM2.5].notna())df.isnull().sum()空值数量统计
import pandas as pd# 加载印度城市空气质量数据集
# index_colDate 指定Date列作为索引列
# parse_datesTrue 将Date列中的数据解析为时间类型
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)# 空值数量统计
print(city_day.isnull().sum())
print(city_day[PM2.5].isnull().sum())
# 非空值数量统计
print(city_day.notnull().sum())
print(city_day[PM2.5].notnull().sum())Missingno库对缺失值的情况进行可视化探查
可以使用第三方库Missingno来对缺失值进行可视化
安装missingno库
pip install missingno
missingno.bar(df)缺失值数量可视化
# 导包
import pandas as pd
import missingno as msno
import matplotlib.pyplot as plt# 加载数据
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)
# 查看缺失值数量
city_day.isnull().sum()
# 查看非缺失值数量
city_day.notna().sum()
# 可视化查看缺失值数量情况
msno.bar(city_day)
plt.show()missingno.matrix(df)缺失值位置的可视化
missingno.matrix(df) 可以快速直观的查看缺失值的分布情况
# 导包
import pandas as pd
import missingno as msno
import matplotlib.pyplot as plt# 加载数据
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)msno.matrix(city_day)
plt.show()
# 对数据集进行随机取样后再查看数据缺失情况
msno.matrix(city_day.sample(100))
plt.show()missingno.heatmap(df)缺失值之间相关性可视化
# 导包
import pandas as pd
import missingno as msno
import matplotlib.pyplot as plt# 加载数据
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)msno.heatmap(city_day)
plt.show()
**返回结果如下**相关性取值 0 不相关1强相关-1强负相关 4.缺失值的处理
缺失值的处理方法有以下几种方式 删除缺失值删除缺失值会损失信息并不推荐删除当缺失数据占比较低的时或可以忽略相关性时可以尝试使用删除缺失值填充缺失值填充缺失值是指用一个估算的值来去替代缺失数 平均值、中位数前后值填充数据呈现顺序变化的时候可以使用缺失值前边或后边的值进行填充线性插值假定数据点之间存在严格的线性关系并利用相邻数据点中的非缺失值来计算缺失数据点的值
dropna删除缺失值
使用dropna函数来删除空值具体用法如下
# 函数用法
df.dropna(axis0, howany, inplaceTrue, subset[列名,...],thresh10
)df.drop() # 按列删除 dropna函数参数解释 axis0 可选参数 默认为0按行删 0, or index删除包含丢失值的行 1, or columns删除包含丢失值的列 howany 可选参数默认为any any: 如果存在NA值则删除该行或列 all: 如果所有值都是NA则删除该行或列 inplaceFalse 可选参数不建议使用这个参数 默认False, 不对原数据集进行修改 inplceTrue对原数据集进行修改 subset接收一个列表 可选参数不与thresh参数一起使用 接收一个列表列表中的元素为列名: 对特定的列进行缺失值删除处理 threshn 可选参数 参数值为int类型按行去除NaN值去除NaN值后该行剩余数值的数量列数大于等于n便保留这一行 示例代码如下
# 导包
import pandas as pd
import missingno as msno
import matplotlib.pyplot as plt# 加载数据
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)# 构造示例数据集
city_day2 city_day.sample(n10, random_state5)
print(city_day2)
msno.matrix(city_day2)
plt.show()city_day2 city_day2.dropna(howany, subset[PM10])
print(city_day2)
msno.matrix(city_day2.dropna(howany, subset[PM10]))
plt.show()fillna固定值填充缺失值 用平均值填充PM2.5的缺失值
# 导包
import pandas as pd
import missingno as msno
import matplotlib.pyplot as plt# 加载数据
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)# 构造示例数据集
city_day3 city_day.copy()
msno.matrix(city_day3)
plt.show()# 计算PM2.5平均值
pm25_mean city_day3[PM2.5].mean()
print(pm25_mean)# fillna函数填充缺失值将返回值赋值给原来的列
city_day3[PM2.5] city_day3[PM2.5].fillna(pm25_mean)# 查看填充完缺失值的数据集
msno.matrix(city_day3)
plt.show()fillna前后值填充缺失值 时序数据在某一列值的变化往往有一定线性规律绝大多数的时序数据具体的列值随着时间的变化而变化所以对于有时序的行数据缺失值处理可以使用上一个非空值或下一个非空值填充 印度城市空气质量数据明显就是一个时序数据集空气中的各种成分会随着时间变化而变化不会出现特别大的急剧变化 使用上一个非空值参数methodffill填充Xylene二甲苯的空值
# 导包
import pandas as pd
import missingno as msno
import matplotlib.pyplot as plt# 加载数据
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)# 构造示例数据集
city_day3 city_day.copy()# 用上一个非空值填充并赋值指定列
city_day3[Xylene] city_day3[Xylene].fillna(methodffill)
msno.matrix(city_day3)
plt.show()使用下一个非空值参数methodffill填充整个数据集的空值
# 导包
import pandas as pd
import missingno as msno
import matplotlib.pyplot as plt# 加载数据
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)# 构造示例数据集
city_day3 city_day.copy()city_day3 city_day3.fillna(methodbfill)
msno.matrix(city_day3)
plt.show()interpolate线性插值 绝大多数的时序数据具体的列值随着时间的变化而变化。 因此除了使用bfill和ffill进行插补以外还可以使用线性插值法它假定数据点之间存在严格的线性关系并利用相邻数据点中的非缺失值来计算缺失数据点的值。 使用df.interpolate(limit_directionboth) 对缺失数据进行线性填充
# 导包
import pandas as pd
import matplotlib.pyplot as plt# 加载数据
city_day pd.read_csv(../datas/data_set/city_day.csv, parse_datesTrue, index_colDate)# 拷贝数据集
city_day4 city_day.copy()
# 线性插值填充并赋值
city_day4 city_day4.interpolate(limit_directionboth)
# 画图查看
city_day4[PM2.5][50:65].plot()
plt.show()
city_day[PM2.5][50:65].plot()
plt.show()
5.总结
缺失值会影响分析计算的结果这个结果又要用来指导生产经营所以要重视缺失值空值仅指Pandas中的空值类型比如NaN缺失值包含空值也有可能是空字符串、数字0、False或None等不是空值的缺失值可以通过replace函数先替换为NaN空值之后再按空值进行处理查看空值 df.info() 可以查看数据集每一列非空值的数量isnull notnull函数 判断是否存在空值df.isnull().sum() 统计空值数量missingno库可以对空值进行可视化探查 missingno.matrix(df) 查看缺失值的位置missingno.heatmap(df) 查看缺失值之间的相关性缺失值的处理df.dropna() 删除缺失值df.fillna(具体值) 将缺失值填充为具体指df.fillna(methodffill) 使用上一个非空值进行填充df.fillna(methodbfill) 使用下一个非空值进行填充df.interpolate(limit_directionboth) 线性插值假定数据点之间存在严格的线性关系并利用相邻数据点中的非缺失值来计算缺失数据点的值 6.项目地址
Python: 66666666666666 - Gitee.com