在第七章中,即航空数据关联规则分析的章节中,第二个代码进行情书清洗时,你会发现示例代码报错,代码如下:
#-*- coding: utf-8 -*-
#数据清洗,过滤掉不符合规则的数据
import pandas as pd
datafile= 'E:\\3data-mining\\2py-testing\\data and code\\chapter7\\demo\\data/air_data.csv' #航空原始数据,第一行为属性标签
cleanedfile = 'E:\\3data-mining\\output/data_cleaned.xls' #数据清洗后保存的文件
data = pd.read_csv(datafile,encoding='utf-8') #读取原始数据,指定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_excel(cleanedfile) #导出结果
在运行后会报错,错误提示为:No engine for filetype: 'csv'
因为这是数据输出的格式不应该为.csv,应该换成xls,这样就不会报错了。
datafile= 'E:\\3data-mining\\2py-testing\\data and code\\chapter7\\demo\\data/air_data.csv' #航空原始数据,第一行为属性标签
cleanedfile = 'E:\\3data-mining\\output/data_cleaned.xls' #数据清洗后保存的文件
这个警告是没关系的,这样之后数据便实现了清洗工作。
最后便正确了。