获取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格式化压缩后的JS文件的方法
Mar 05 Python
分享python数据统计的一些小技巧
Jul 21 Python
python中利用Future对象回调别的函数示例代码
Sep 07 Python
python 全局变量的import机制介绍
Sep 07 Python
python实现输入数字的连续加减方法
Jun 22 Python
python实现旋转和水平翻转的方法
Oct 25 Python
python样条插值的实现代码
Dec 17 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
下载官网python并安装的步骤详解
Oct 12 Python
Python进行统计建模
Aug 10 Python
使用Python pip怎么升级pip
Aug 11 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者的疑难问答(2)
2006/10/09 PHP
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php实现网站留言板功能
2015/11/04 PHP
php自定义分页类完整实例
2015/12/25 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
农历与西历对照
2006/09/06 Javascript
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
zooplus波兰:在线宠物店
2019/07/21 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
室内设计专业个人的自我评价
2013/12/18 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
画展邀请函
2015/01/31 职场文书
入队仪式主持词
2015/07/04 职场文书
Pandas数据结构之Series的使用
2022/03/31 Python