本文简单介绍python中一些常见的数据预处理,包括数据加载、缺失值处理、异常值处理、描述性变量转换为数值型、训练集测试集划分、数据规范化。
1、 加载数据
1.1 数据读取
数据格式有很多,介绍常见的csv,txt,excel以及数据库mysql中的文件读取import pandas as pd
data = pd.read_csv(r'../filename.csv')#读取csv文件
data = pd.read_table(r'../filename.txt')#读取txt文件
data = pd.read_excel(r'../filename.xlsx') #读取excel文件
# 获取数据库中的数据
import pymysql
conn = pymysql.connect(host='localhost',user='root',passwd='12345',db='mydb')#连接数据库,注意修改成要连的数据库信息
cur = conn.cursor()#创建游标
cur.execute("select * from train_data limit 100")#train_data是要读取的数据名
data = cur.fetchall()#获取数据
cols = cur.description#获取列名
conn.commit()#执行
cur.close()#关闭游标
conn.close()#关闭数据库连接
col = []
for i in cols:
col.append(i[0])
data = list(map(list,data))
data = pd.DataFrame(data,columns=col)
1.2 CSV文件合并
实际数据可能分布在一个个的小的csv或者txt文档,而建模分析时可能需要读取所有数据,这时呢,需要将一个个小的文档合并到一个文件中#合并多个csv文件成一个文件
import glob
#合并
def hebing():
csv_list = glob.glob('*.csv') #查看同文件夹下的csv文件数
print(u'共发现%s个CSV文件'% len(csv_list))
print(u'正在处理............')
for i in csv_list: #循环读取同文件夹下的csv文件
fr = open(i,'rb').read()
with open('result.csv','ab') as f: #将结果保存为result.csv
f.write(fr)
print(u'合并完毕!')
#去重
def quchong(file):
df = pd.read_csv(file,header=0)
datalist = df.drop_duplicates()
datalist.to_csv(file)
if __name__ == '__main__':
hebing()
quchong("result.csv.csv")
1.3 CSV文件拆分
对于一些数据量比较大的文件,想直接读取或者打开比较困难,介绍一个可以拆分数据的方法吧,方便查看数据样式以及读取部分数据##csv比较大,打不开,将其切分成一个个小文件,看数据形式
f = open('NEW_Dat