获取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 23 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
Python实现视频下载功能
Mar 14 Python
详解 Python 读写XML文件的实例
Aug 02 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
Django中在xadmin中集成DjangoUeditor过程详解
Jul 24 Python
python读取与处理netcdf数据方式
Feb 14 Python
Python求凸包及多边形面积教程
Apr 12 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 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和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
python获取目录下所有文件的方法
2015/06/01 Python
python定时器(Timer)用法简单实例
2015/06/04 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
主题酒店策划书
2014/01/28 职场文书
知识竞赛活动方案
2014/02/18 职场文书
社区春季防火方案
2014/06/02 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
爱国电影观后感
2015/06/19 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL