数据清洗是将重复、多余的数据赛选清除,将缺失的数据补充完整,提高数据的一致性。
一般包括:分析数据、缺失值处理、异常值处理、去重处理、噪声数据处理。
Pandas数据结构包括二种,一种是一维标记数据,一种是类似excel二维标记数据。
(一)pandas数据结构
1.创建数据格式
从Excel中创建数据格式:df=pd.DataFrame(pd.read_excel(‘a.xls’)
从CSV中创建数据格式:df=pd.DataFrame(pd.read_csv(‘j.csv’)
2.查看数据
df.head(3)
head()函数查看前几行数据,tail()查看后几行数据;
df.index() df.columns() 查看行名、列名;
查看数据值:loc iloc loc表示根据行名查看;iloc根据数字索引查看,也就是行号
df.shape[0,1] 0表示查看行数,1表示查看列数
3.缺失值处理
处理方法:填充默认值、去掉缺失数据行或列
删除NAN所在的行:df.dropna(axis=0)
删除NAN所在的列:df.dropna(axis=1,how=’all’/’any’) all代表删除表中全部为NAN的列;any代表删除表中任何含有NAN的列。
填充NA/NAN值:df.fillna(0)
为不同的列填充不同的值:df.fillna({‘two’:222,’three’:333}) 第二列“two” ,第三列 ‘three’
4.去重处理
duplicated():用来查找并显示数据表中的重复数据值;
drop_duplicated():用于去掉重复的数据,保留第一次出现的数据。参数subset=None,默认为所有列,指定后选定的列。
5.噪声数据处理
对于偏离群体的数据,一般可以ongoing偏离均值三倍标准差的数据进行删除。
import pandas as pd
import numpy as np
#创建二维数据格式
#df=pd.DataFrame(np.random.randn(20,4),index=list(range(20)),columns=list('abcd'))
#print (df)
#写入Excel文件
#df.to_excel('excel_to_python.xls',sheet_name='random')
#噪声数据处理
#去除噪声的函数
def drop_noisy_data(df):
df_copy=df.copy()
df_describe=df_copy.describe()
for column in df.columns:
mean=df_describe.loc['mean',column]
std=df_describe.loc['std',column]
minvalue=mean-2*std
maxvalue=mean+2*std
#print("mean:{:.2f},std:{:.2f}".format(mean,std))
df_copy=df_copy[df_copy[column]>=minvalue]
df_copy=df_copy[df_copy[column]<=maxvalue]
return df_copy
filename="excel_to_python.xls"
df1=pd.read_excel(filename)
df_copy=drop_noisy_data(df1)
df_copy.to_excel('zaoshengchuli.xls',sheet_name='new')
excel_to_python.xls文件
zaoshengchuli.xls文件
df_describe结构中的内容