在利用机器学习对数据建立模型的过程中,首要的工作就是导入数据。导入数据的方法有很多:
1、基于python本身io;
2、基于numpy.load;
3、pandas。
当然最好用的是pandas,下面来简单介绍下pandas导入数据,并在导入过程中进行数据转换。
在我们的数据中,前1558列都是数字类型,而最后一列为字符串。我们自定义一个Converter_number函数,将空值转换为np.nan,字符串转换为0和1.
#--coding:utf-8
#忽略警告,有时候程序循环中警告过多 import warnings warnings.filterwarnings("ignore") import numpy as np import pandas as pd import os from sklearn.neighbors import KernelDensity import matplotlib.pyplot as plt import mpl_toolkits.mplot3d filepath = os.path.join("../dataset/Internet Advertisements/Data Folder","ad.data") #对DataFrame的列做数据转换 def Converter_number(x): try: return np.float64(x) except ValueError: return np.nan #字典推导式,前1558列转换为float64,空值转换为np.nan converters = {key:Converter_number for key in range(1558)}
#最后一列将字符串转换为1和0
converters[1558] = lambda x: 1 if x.strip()=='ad.' else 0
ads = pd.read_csv(filepath,header=None,converters=converters)#利用read_csv读取文件,并转换
print(ads[:5])
if __name__ == "__main__":
print("OK")
虽然代码很短,但是用到了python很多经典的用法,希望初学者能够仔细阅读分析每一段代码。并且建议上网学习函数的参数解释和使用方法。