获取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入门篇之正则表达式
Oct 20 Python
python自然语言编码转换模块codecs介绍
Apr 08 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
python中kmeans聚类实现代码
Feb 23 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
详谈Pandas中iloc和loc以及ix的区别
Jun 08 Python
Python编程中类与类的关系详解
Aug 08 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
Python装饰器结合递归原理解析
Jul 02 Python
python爬取新闻门户网站的示例
Apr 25 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
解决php中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
使用Python对Access读写操作
2017/03/30 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python3 map函数和filter函数详解
2019/08/26 Python
python3实现高效的端口扫描
2019/08/31 Python
python drf各类组件的用法和作用
2021/01/12 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
数学系个人求职信范文
2014/01/30 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
旷工检讨书1000字
2015/01/01 职场文书
2015大学生求职信范文
2015/03/20 职场文书
驻村工作简报
2015/07/20 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android