获取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之开始真正编程
Sep 12 Python
python自动zip压缩目录的方法
Jun 28 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
详解Python使用simplejson模块解析JSON的方法
Mar 24 Python
Python编写登陆接口的方法
Jul 10 Python
利用python求相邻数的方法示例
Aug 18 Python
基于Python代码编辑器的选用(详解)
Sep 13 Python
python实现微信接口(itchat)详细介绍
Oct 23 Python
python搜索包的路径的实现方法
Jul 19 Python
Python之Numpy的超实用基础详细教程
Oct 23 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 Python
Python3中PyQt5简单实现文件打开及保存
Jun 10 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
一个显示天气预报的程序
2006/10/09 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
Python基于有道实现英汉字典功能
2015/07/25 Python
JSON Web Tokens的实现原理
2017/04/02 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python装饰器使用实例详解
2019/12/14 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
在校生钳工实习自我鉴定
2013/09/19 职场文书
企业内控岗位的职责
2014/02/07 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
职业生涯规划书前言
2014/04/15 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
2015年植树节活动总结
2015/02/06 职场文书
校运会宣传稿大全
2015/07/23 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS