获取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 06 Python
Python Web开发模板引擎优缺点总结
May 06 Python
python去除所有html标签的方法
May 05 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
Python元组及文件核心对象类型详解
Feb 11 Python
Python socket套接字实现C/S模式远程命令执行功能案例
Jul 06 Python
详解python 注释、变量、类型
Aug 10 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
浅析python内置模块collections
Nov 15 Python
python异常处理和日志处理方式
Dec 24 Python
Pycharm和Idea支持的vim插件的方法
Feb 21 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 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/10/09 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
php查看当前Session的ID实例
2015/03/16 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
js href的用法
2010/05/13 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
药剂学专业应届生自荐信
2013/09/29 职场文书
后勤岗位职责
2013/11/26 职场文书
小学生学习感言
2014/03/10 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
个人担保书范文
2014/05/20 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
研讨会致辞
2015/07/31 职场文书