数据挖掘csv文件与xls文件预处理

(1)、在windows下的csv文件,默认打开方式是GBK格式,在linux下打开的文件默认是utf-8的格式。所以windows下的格式在linux下会出现中文乱码的现象。使用iconv命令对整个文件进行转码的操作。

sudo iconv -f GBK -t UTF-8 d_train_20180102.csv -o new_d_train.csv

后面的第一个csv为需要转码操作的文件,后面的为生成的新文件。
(2)、对xls文件的内容操作

import xlrd
data = xlrd.open_workbook('data.xls')

grade = []
lik = []
sheet = data.sheet_by_index(0)  #此语句可以将xls按照索引进行查找
s = '优秀'       #判断某一个单元格的内容
s_utf8 = s.encode('UTF-8')   #中文的内容需要就行转码操作才能进行比较
print(sheet.nrows)      #打印列数

for i in range(1, sheet.nrows):
    if sheet.cell(i, 7).value.encode('UTF-8') == s_utf8:  #把单元格的内容进行转码操作
        grade.append(1)
    else:
        grade.append(0)

s2 = '是'
s2_utf8 = s2.encode('UTF-8')
for i in range(1, sheet.nrows):
    if sheet.cell(i, 9).value.encode('UTF-8') == s2_utf8:
        lik.append(1)
    else:
        lik.append(0)

(3)、csv文件的处理

import numpy as np
import pandas as pd

train = pd.read_csv('train.csv')
#iloc是基于索引位来选取数据集,0:4就是选取 0,1,2,3这四行
#后面的两个参数是多少行多少列
train = train.iloc[:-1, :-1]
#np.array可以将形成的矩阵的第一列自带的行号去掉
print(np.array(train))

train = pd.read_csv('train.csv')
#train.columns是csv文件中的数据标签 axis=1表示的是列,不加的话默认为行
#drop函数的好处是不改变文件的内容,而是返回了一个新的pandas的解析类型,可以去获得该变量
train = train.drop(labels= train.columns[-1], axis=1)
print(np.array(train))

猜你喜欢

转载自blog.csdn.net/yuyushikuan/article/details/79475088