整条的数据集划分
import random
def randSplit(dataSet,rate):
l = list(dataSet.index)
random.shuffle(l)
dataSet.index = l
n = dataSet.shape[0]
m = int(n*rate)
train = dataSet.loc[range(m),:]
test = dataSet.loc[range(m,n),:]
dataSet.index = range(dataSet.shape[0])
test.index = range(test.shape[0])
return train, test
特征值和目标值分离的数据集划分
#划分数据集和测试集 ,划分数据集随机划分数据 from sklearn.model_selection import train_test_split Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, Y, test_size=0.25)读取数据
数据清洗Pandas读取文件(read_csv与read_table 的区别)
data.info()#数据信息
data.isnull().sum()#查看缺失值
data.drop(['Name','Cabin','Ticket'],inplace=True,axis=1)#删除缺失值多,目测对建模没有用的列
data = data.dropna()#把Nan去除
data["Age"] = data["Age"].fillna(data["Age"].mean())#Age列的NaN填充Age平均值
data= data.fillna(method='ffill')#在列方向上以前一个值作为值赋给NaN
data["Sex"] = (data["Sex"]=='male').astype('int')#将二分类变量转换为数值型变量
#将三分类变量转换为数值型变量
labels = data["Embarked"].unique().tolist()
data["Embarked"] = data["Embarked"].apply(lambda x: labels.index(x))
数据截取
pandas中iloc和loc的区别和用法:
- loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行)
data.loc['b','B']#获取第二行、第二列对应的值 data.loc['b':'c','B':'C']#获取从第二行开始。第二列开始的右下角区域的值
- iloc函数:通过行号来取行数据(如取第二行的数据)
data.iloc[1,1]#获取第二行、第二列的值 data.iloc[1:3,1:3]#获取从第二行,第二列开始对应的右下角的区域



