获取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 27 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
Python实现针对给定字符串寻找最长非重复子串的方法
Apr 21 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
详解Python的三种可变参数
May 08 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
Python用字典构建多级菜单功能
Jul 11 Python
python数据持久存储 pickle模块的基本使用方法解析
Aug 30 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
解决Python spyder显示不全df列和行的问题
Apr 20 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/12/25 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
Js 中debug方式
2010/02/07 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
Python线程之定位与销毁的实现
2019/02/17 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
通信工程毕业生自荐信
2013/11/01 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
推荐信范文大全
2015/03/27 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python