获取python运行输出的数据并解析存为dataFrame实例


Posted in Python onJuly 07, 2020

在学习xg的 时候,想画学习曲线,但无奈没有没有这个 evals_result_

AttributeError: 'Booster' object has no attribute 'evals_result_'

因为不是用的分类器或者回归器,而且是使用的train而不是fit进行训练的,看过源码fit才有evals_result_这个,导致训练后没有这个,但是又想获取学习曲线,因此肯定还需要获取训练数据。

运行的结果 上面有数据,于是就想自己解析屏幕的数据试一下,屏幕可以看到有我们迭代过程的数据,因此想直接获取屏幕上的数据,思维比较low但是简单粗暴。

获取python运行输出的数据并解析存为dataFrame实例

接下来分两步完成:

1) 获取屏幕数据

import subprocess
import pandas as pd
top_info = subprocess.Popen(["python", "main.py"], stdout=subprocess.PIPE)
out, err = top_info.communicate()
out_info = out.decode('unicode-escape')
lines=out_info.split('\n')

注:这里的main.py就是自己之前执行的python文件

2) 解析文件数据:

ln=0
lst=dict()
for line in lines:
 if line.strip().startswith('[{}] train-auc:'.format(ln)):
 if ln not in lst.keys():
  lst.setdefault(ln, {})
 tmp = line.split('\t')
 t1=tmp[1].split(':')
 t2=tmp[2].split(':')
 if str(t1[0]) not in lst[ln].keys():
  lst[ln].setdefault(str(t1[0]), 0)
 if str(t2[0]) not in lst[ln].keys():
  lst[ln].setdefault(str(t2[0]), 0)
 lst[ln][str(t1[0])]=t1[1]
 lst[ln][str(t2[0])]=t2[1]
 ln+=1
json_df=pd.DataFrame(pd.DataFrame(lst).values.T, index=pd.DataFrame(lst).columns, columns=pd.DataFrame(lst).index).reset_index()
json_df.columns=['numIter','eval-auc','train-auc']
print(json_df)

整体代码:

import subprocess
import pandas as pd
top_info = subprocess.Popen(["python", "main.py"], stdout=subprocess.PIPE)
out, err = top_info.communicate()
out_info = out.decode('unicode-escape')
lines=out_info.split('\n')
 
ln=0
lst=dict()
for line in lines:
    if line.strip().startswith('[{}]    train-auc:'.format(ln)):
        if ln not in lst.keys():
            lst.setdefault(ln, {})
        tmp = line.split('\t')
        t1=tmp[1].split(':')
        t2=tmp[2].split(':')
        if str(t1[0]) not in lst[ln].keys():
            lst[ln].setdefault(str(t1[0]), 0)
        if str(t2[0]) not in lst[ln].keys():
            lst[ln].setdefault(str(t2[0]), 0)
        lst[ln][str(t1[0])]=t1[1]
        lst[ln][str(t2[0])]=t2[1]
        ln+=1
json_df=pd.DataFrame(pd.DataFrame(lst).values.T, index=pd.DataFrame(lst).columns, columns=pd.DataFrame(lst).index).reset_index()
json_df.columns=['numIter','eval-auc','train-auc']
print(json_df)

看下效果:

获取python运行输出的数据并解析存为dataFrame实例

以上这篇获取python运行输出的数据并解析存为dataFrame实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python django集成cas验证系统
Jul 14 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
Django 路由层URLconf的实现
Dec 30 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
如何基于windows实现python定时爬虫
May 01 Python
PyQt5的相对布局管理的实现
Aug 07 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 Python
解决python的空格和tab混淆而报错的问题
Feb 26 Python
利用keras使用神经网络预测销量操作
Jul 07 #Python
Python Mock模块原理及使用方法详解
Jul 07 #Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 #Python
PyTorch: Softmax多分类实战操作
Jul 07 #Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 #Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 #Python
Python基于httpx模块实现发送请求
Jul 07 #Python
You might like
PHP+javascript液晶时钟
2006/10/09 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python制作朋友圈九宫格图片
2019/11/03 Python
使用Python实现牛顿法求极值
2020/02/10 Python
Python实现自动访问网页的例子
2020/02/21 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
Java基础知识面试题
2014/03/25 面试题
建材业务员岗位职责
2013/12/08 职场文书
中医专业职业生涯规划书范文
2014/01/04 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
美术教师个人总结
2015/02/06 职场文书
Python天气语音播报小助手
2021/09/25 Python