pandas日常处理笔记

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:真实的样本标签,默认为{01}或者{-11}。如果要设置为其它值,则 pos_label 参数要设置为特定值。例如要令样本标签为{12},其中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')
发布了49 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44166997/article/details/102822691
今日推荐