获取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入门_学会创建并调用函数的方法
May 16 Python
基于python(urlparse)模板的使用方法总结
Oct 13 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
对pandas replace函数的使用方法小结
May 18 Python
python安装numpy和pandas的方法步骤
May 27 Python
Python基于机器学习方法实现的电影推荐系统实例详解
Jun 25 Python
Python flask框架端口失效解决方案
Jun 04 Python
pymongo insert_many 批量插入的实例
Dec 05 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
TensorFlow的环境配置与安装方法
Feb 20 Python
4种方法python批量修改替换列表中元素
Apr 07 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&MYSQL服务器配置说明
2006/10/09 PHP
BBS(php & mysql)完整版(五)
2006/10/09 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python写的一个简单监控系统
2015/06/19 Python
python计算一个序列的平均值的方法
2015/07/11 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Python中is和==的区别详解
2018/11/15 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
法律专业自我鉴定
2013/10/03 职场文书
中职应届生会计求职信
2013/10/23 职场文书
初中三年学生的学习自我评价
2013/11/13 职场文书
物业消防安全责任书
2014/07/23 职场文书
美术学专业求职信
2014/07/23 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书