获取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中黄金分割法实现方法
May 06 Python
Python循环语句中else的用法总结
Sep 11 Python
浅谈使用Python变量时要避免的3个错误
Oct 30 Python
ubuntu17.4下为python和python3装上pip的方法
Jun 12 Python
关于python2 csv写入空白行的问题
Jun 22 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
python与C、C++混编的四种方式(小结)
Jul 15 Python
简单的Python调度器Schedule详解
Aug 30 Python
opencv 图像轮廓的实现示例
Jul 08 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
Python Parser的用法
May 12 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
在PWS上安装PHP4.0正式版
2006/10/09 PHP
php导出excel格式数据问题
2014/03/11 PHP
PHP单例模式详细介绍
2015/07/01 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
php生成微信红包数组的方法
2019/09/05 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
举例讲解Python中的算数运算符的用法
2015/05/13 Python
Python网络编程详解
2017/10/31 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
如何基于python操作json文件获取内容
2019/12/24 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
就业协议书的作用
2014/04/11 职场文书
环保建议书100字
2014/05/14 职场文书
打架检讨书
2015/01/27 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL