最近,报了一个俱乐部,第一节课的作业是对数据进行处理,查看异常值以及重复值,并研究气象参数与pm2.5的关系。
一.数据内容及任务
本次待处理的数据比较简单,首先看一下具体的数据内容:
分为以下几个维度:时间、风力、风向、湿度等,接下来我们对数据进行导入而后处理。
![](https://img-blog.csdnimg.cn/ebf29a1ac84e4f3a9ea03a0987f2ed16.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
二.数据处理
包的导入
![](https://img-blog.csdnimg.cn/c55262b80c6441c7a0b31da4fb390811.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
import pandas as pd
import missingno as msno
import matplotlib.pyplot as plt
# 文字规格
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #这两行需要手动设置
(一)数据读取
![](https://img-blog.csdnimg.cn/eea45be5d8ee47b991e0a3cea2be47d1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/54f369e112a34522903a571c7f7c83e0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
#读取文件
data=pd.read_csv("数据1.csv")
#看一下数据规格
data.shape
#看一下数据字段
data.head(10)
data.info()
(二)数据简单分析处理
1.缺失值
首先对缺失率进行可视化观察一下
![](https://img-blog.csdnimg.cn/1a6a54b8cd864e6d8a89c9ed9779102f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
empty_column = []
for e, c in enumerate(data.columns):
if sum(pd.isnull(data[c]))!=0:
empty_column.append(c)
print("feature_no:%d \t feature_name:%s \t null_num:%d \t null_rate: %.2f%%"%
(e, c , sum(pd.isnull(data[c])), 100*sum(pd.isnull(data[c]))/data(df[c])))
![](https://img-blog.csdnimg.cn/b89326f01fdf487884b1cca51dcf84ff.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
msno.matrix(data[data.columns])
看一下缺失率
![](https://img-blog.csdnimg.cn/4be78b36bdd64dbb933633e6c8be6b69.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
# 缺失率
def missing_data(data):
total = data.isnull().sum().sort_values(ascending = True)
percent = (data.isnull().sum()/data.isnull().count()*100).sort_values(ascending = False)
return pd.concat([total, percent], axis=1, keys=['Total', 'Percent'])
missing_data(data[data.columns])
惊呆了老铁,这次的数据没有缺失(在这里我都怀疑老师是不是数据给错了)。
2.重复数据
![](https://img-blog.csdnimg.cn/068af38f69914cb8ad32708f31e9549a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/0502ef34f8e74f2eb8857f2c3be5ad88.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16) 数据方面也没重复。
3.异常值检测
![](https://img-blog.csdnimg.cn/fa6ca40d4e1a45d49bb67dc8455c140e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/aa90ed2552714ebaafd92c9341cca9d2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
plt.subplot(1,2,1)
plt.boxplot(data["湿度(RH)"])
plt.title("湿度(RH)")
plt.subplot(1,2,2)
plt.boxplot(data["风速(m/s)"])
plt.title("风速(m/s)")
plt.show()
plt.subplot(1,3,1)
plt.boxplot(data["温度(℃)"])
plt.title("温度(℃)")
plt.subplot(1,3,2)
plt.boxplot(data["PM2.5(ug/m3)"])
plt.title("PM2.5(ug/m3)")
plt.subplot(1,3,3)
plt.boxplot(data["PM10(ug/m3)"])
plt.title("PM10(ug/m3)")
plt.show()
(三).数据分析
![](https://img-blog.csdnimg.cn/92467c4d06684a3788544c6d7a4094f0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/357ad769e53740ffad2a3423a1f5b78c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/1f63f29de5c847608321b8edb0c505c4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/be4a59d3af044b7f81275b64f07f8d25.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
分析可得时间的颗粒度太细,我们需要对时间进行压缩来进一步对数据进行观察。
![](https://img-blog.csdnimg.cn/953e3b750c8049689e86e91818ebbee6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/20e20542bdc342939ae05df38f4b89d9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/e68f18b145aa487dbe274a369c0175b8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
数据特征分析:相关性分析
![](https://img-blog.csdnimg.cn/60c5f51b69d84970b1496da0b001c3de.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/549c3f27ac5a40e1afa0b595acb088aa.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/1623c108c272417fad7d19988d40cbfc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
Pearson相关系数
相关系数的绝对值越大,相关性越强:相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。
通常情况下通过以下取值范围判断变量的相关强度:
相关系数绝对值 :
0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关
采用Pearson相关系数检验相关性时,应先检验数据是否服从正态分布:
![](https://img-blog.csdnimg.cn/ffb6f2cc4a6841c1a2d101bf92bb2fcd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
(四)可视分析
![](https://img-blog.csdnimg.cn/1373c47510d949ed911f2702e9cf7f51.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/22e2b18045fc41c898ecc9152be0a1fd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGf55m9QVM=,size_20,color_FFFFFF,t_70,g_se,x_16)
后面会把数据分享给大家
本文章仅供交流,如有转载,请标明来处 谢谢
|