Python数据分析与处理——处理中国地区信息
预处理地区信息
2.1数据的爬取
代码:
import pandas as pd data=pd.read_csv("example_data.csv",header=1) print(data) data1=pd.read_csv("北京地区信息.csv",header=1,encoding='gbk') data2=pd.read_csv("天津地区信息.csv",encoding='gbk') print(data1) print(data2)
代码运行结果:
首先使用pandas的read_csv()方法进行数据的读取,然后就能够看到相应的表格信息。
2.2检查重复数据
# 2.2检查重复数据 dupnum=data.duplicated() print(dupnum) \# 对重复值进行处理 caldup=data.drop_duplicates() print(caldup)
代码运行结果:
主要是是使用这个duplicated()方法进行数据的查重,返回一个布尔序列,仅对唯一元素而言为True。如果有重复的数据就会在该数值的部分返货Flase。
然后我们就可以使用drop_duplicates()进行重复值删除。
2.3检查缺失值
代码:
from pandas import Series from numpy import NAN \# import pandas as pd series_obj=Series([1,None]) pd.notnull(series_obj) \# 上面做的是测试 pd.notnull(data) pd.notnull(data1) pd.notnull(data2)
代码运行结果:
使用pd.notnull(data1)进行非空数值的返回, 返回值是布尔型的矩阵,再取df[布尔型矩阵]返回的是id为非空的行。
2.4 检查异常值
import numpy as np \# 2.4 检查异常值 def three_sig(ser1): mean_value=ser1.mean() \# 标准差 std_value=ser1.std() \# 位于3σ范围外的都是异常值 \# 数值大于u+3σ小雨u-3σ rule=(mean_value-3*std_value>ser1)|(ser1.mean()+3*ser1.std()<ser1) index=np.arange(ser1.shape[0])[rule] outrange=ser1.iloc[index] return outrange three_sig(data2["女性"])
代码运行结果:
3σ原则又称为拉依达准则,该准则具体来说,就是先假设一组检测数据只含有随机误差,对原始数据进行计算处理得到标准差,然后按一定的概率确定一个区间,认为误差超过这个区间的就属于异常值。
通俗理解就是正态分布。