1.数据探索
#-*- coding: utf-8 -*-
#对数据进行基本的探索,返回缺失值以及最大值,最小值
import pandas as pd
datafile='G:/学习资料/统计/chapter7/demo/data/air_data.csv'
resultfile1='G:/学习资料/统计/chapter7/demo/tmp/explore1.xls'
#将数据导入
data = pd.read_csv(datafile,encoding='utf-8')
#查看数据的各个属性的相关信息
data.info()
#将每个属性的描述性统计量展示
explore=data.describe(percentiles=[],include='all').T
#计算属性对应的空值个数
explore['null']=len(data)-explore['count']
#选取部分探索内容
explore = explore[['null','max','min']]
#属性列名的重命名
explore.columns = [u'空值记录数',u'最大值',u'最小值']
#对索引命名
explore.index.name=u'属性名称'
#将探索的结果保存到excel文件
explore.to_excel(resultfile1,header=True)
2.数据清洗
#-*- coding:utf-8 -*-
#数据清洗,过滤掉不符合规则的数据
import pandas as pd
datafile='G:/学习资料/统计/chapter7/demo/data/air_data.csv'
cleanedfile1='G:/学习资料/统计/chapter7/demo/tmp/data_cleaned1.csv'
data=pd.read_csv(datafile, encoding='utf-8')#读取原始数据,指定UTF-8编码
data=data[data['SUM_YR_1'].notnull()*data['SUM_YR_2'].notnull()] #票价非空值才保留
#只保留票价非零,或者平均折扣率与总飞行公里数同时为0的记录
index1=data['SUM_YR_1']!=0
index2=data['SUM_YR_2']!=0
index3=(data['SEG_KM_SUM']==0)&(data['avg_discount']==0) #“与”
data=data[index1|index2|index3] #“或”
data.to_csv(cleanedfile1)
报错:UserWarning: evaluating in Python space because the '*' operator is not supported by numexpr for the bool dtype, use '&' instead
解决:将“*”替换为“&”即可。
报错:如果最后一行像书中一样是data.to_excel(),会出现ValueError: No engine for filetype: 'csv'
解决:改为data.to_csv()
3.数据变化