获取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 04 Python
在Python的Django框架的视图中使用Session的方法
Jul 23 Python
python3中dict(字典)的使用方法示例
Mar 22 Python
python如何去除字符串中不想要的字符
Jul 05 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
Python中字符串与编码示例代码
May 20 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
教你怎么用Python实现多路径迷宫
Apr 29 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Apr 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php读取数据库信息的几种方法
2008/05/24 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
玩转python爬虫之cookie使用方法
2016/02/17 Python
django2 快速安装指南分享
2018/01/05 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
婚前协议书范本
2014/10/27 职场文书
转让协议书
2015/01/27 职场文书
高三生物教学反思
2016/02/22 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
Python语言中的数据类型-序列
2022/02/24 Python
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL