pandas读csv文件时路径有中文汉字如何读取
f=open("C:/Users/liubb/Desktop/机器学习/U_REEData.csv",encoding='gbk')
dataframe=pd.read_csv(f)
pandas读取报错问题可尝试解决方法
df_clean = pd.read_csv('test_error.csv',lineterminator='\n')
如果是某行报错
pd.read_csv(path, error_bad_lines=False)
如果有中文报错,可以通过先open在读取
data = pd.read_csv(open(r'D:\Mywork\work\2020\0226\mycode\新款last\aaa.csv',encoding='utf_8'))
统计某一行或者某一列的数据频数
zero_col_count = dict(df[0].value_counts())#统计第0列元素的值的个数
three_row_count = dict(df.loc[3].value_counts())#统计第3行元素的值的个数
排序(逆序)
data_ret.sort_values(by='id_count', ascending=False)
重建索引
data_ret = data_ret.reset_index(index = True)
将表数据存txt
dd.to_csv('dd.txt',index=False)
将txt数据读取成表
pd.read_table('dd.txt',sep=',')
获取表中的两列组成字典
dict(zip(bb['关键字'], bb['排名']))
求每列的和
data_all.loc["sum"] = data_all.sum()
融化(melt)
pd.melt(data_all,id_vars=["name","team_name",'userid'],value_vars=['用户句子数','价格'],var_name=['类型'])
透视表
aa = pd.pivot_table(data_all,index=["name","team_name",'userid'],values=['风格','辱骂','其他','无标签'])
画roc曲线
y_true:真实的样本标签,默认为{0,1}或者{-1,1}。如果要设置为其它值,则 pos_label 参数要设置为特定值。例如要令样本标签为{1,2},其中2表示正样本,则pos_label=2。
y_score:对每个样本的预测结果。
pos_label:正样本的标签。
from sklearn.metrics import roc_curve, auc ###计算roc和auc
fpr,tpr,threshold = roc_curve(y_test, y_score) ###计算真正率和假正率
roc_auc = auc(fpr,tpr) ###计算auc的值
plt.plot(fpr, tpr, 'b',label='AUC = %0.2f'% roc_auc)
plt.legend(loc='lower right')
plt.plot([0, 1], [0, 1], 'r--')
plt.xlim([0, 1])
plt.ylim([0, 1])
plt.xlabel('False Positive Rate') #横坐标是fpr
plt.ylabel('True Positive Rate') #纵坐标是tpr
plt.title('Receiver operating characteristic example')
plt.show()
利用交叉验证来确定参数
利用xgboost与交叉检验求出最优解
from xgboost import XGBRegressor
import warnings
warnings.filterwarnings("ignore")
params = [1,2,3,4,5,6]
test_scores=[]
for param in params:
clf = XGBRegressor(max_depth = param)
test_score = np.sqrt(-cross_val_score(clf,x_train,y_train,cv =10,scoring='neg_mean_squared_error'))
test_scores.append(np.mean(test_score))
plt.plot(params,test_scores)
plt.grid(True,axis='both',color='red',alpha=0.1)
plt.title('max_depth vs CV Error')