1.把列表转化为series,并且命名,和其他列进行拼接:
new_concat=pd.concat([id,Series(train_predict,name='pre')],axis=1)
2 .把已经打乱顺序的id重新进行排序
id = id.reset_index(drop=True)
3,删除重复的行,其他行保留下来
new_concat=new_concat.drop_duplicates(subset='SUBSCR_ID', keep='first', inplace=False)
4.结果评估,输出混淆矩阵,输出准确率,查全率,精确率,f1值
a = metrics.confusion_matrix(test_predict, y_test)
test_f1 = metrics.f1_score(test_predict, y_test)
test_acc = metrics.accuracy_score(test_predict, y_test)
test_rec = metrics.recall_score(test_predict, y_test)
c=metrics.precision_score(test_predict, y_test)
整体结果:
b=metrics.classification_report(test_predict, y_test)
5.dataframe 与 numpy 下的多维数组的转换
从文件读取数据返回 data frame,
参数解释:
header:表头,默认不为空(为 0,也即将第一行视为表头)。如果我们要读取的文件,直接就是数据,没有所谓的表头。就需指定 header=None,否则将以文件的第一行作为 df.columns。指定 header=None,df.columns 返回的是列索引
index_col:认定原始 csv 文件的第几列(从0开始计数)为索引列(也即从1开始编号,表示每一行样本的编号)
一般会指定 index_col=0,表示第0列为索引列
index_col 指定的列将不会作为 DataFrame 的一列进行返回;
df.values
其他整理好的帖子:
https://www.jianshu.com/p/6eb5499cd07d