获取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的Django框架中inclusion_tag的使用
Jul 21 Python
python实现周期方波信号频谱图
Jul 21 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
解决Python spyder显示不全df列和行的问题
Apr 20 Python
python中turtle库的简单使用教程
Nov 11 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
python asyncio 协程库的使用
Jan 21 Python
numba提升python运行速度的实例方法
Jan 25 Python
Python-OpenCV教程之图像的位运算详解
Jun 21 Python
python析构函数用法及注意事项
Jun 22 Python
asyncio异步编程之Task对象详解
Mar 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实现链结人气统计
2006/10/09 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
FireFox JavaScript全局Event对象
2009/06/14 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
单链表反转python实现代码示例
2018/02/08 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
python 如何将office文件转换为PDF
2020/09/22 Python
Python通过字典映射函数实现switch
2020/11/06 Python
Python解析微信dat文件的方法
2020/11/30 Python
Css3新特性应用之形状总结
2016/12/08 HTML / CSS
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
一名老师的自我评价
2014/02/07 职场文书
公司股份合作协议书
2014/12/07 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
教师岗位职责
2015/02/03 职场文书
2015年体育教学工作总结
2015/05/20 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
python之django路由和视图案例教程
2021/07/26 Python
python基础之错误和异常处理
2021/10/24 Python
win10更新失败无限重启解决方法
2022/04/19 数码科技
Java实现简单小画板
2022/06/10 Java/Android