获取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 相关文章推荐
用PyQt进行Python图形界面的程序的开发的入门指引
Apr 14 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
说一说Python logging
Apr 15 Python
Python单例模式的两种实现方法
Aug 14 Python
python简单实现操作Mysql数据库
Jan 29 Python
Python处理命令行参数模块optpars用法实例分析
May 31 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
django框架中间件原理与用法详解
Dec 10 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
使用pycharm运行flask应用程序的详细教程
Jun 07 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的面试题集
2006/11/19 PHP
php 读取文件乱码问题
2010/02/20 PHP
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
js实现日历与定时器
2017/02/22 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
薪资那么高的Web前端必看书单
2017/10/13 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
园艺师求职信
2014/03/10 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
放假通知格式
2015/04/14 职场文书