日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python遍历data、并输出结果_获取python运行输出的数据并解析存为dataFrame实例

發布時間:2023/12/19 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python遍历data、并输出结果_获取python运行输出的数据并解析存为dataFrame实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在學習xg的 時候,想畫學習曲線,但無奈沒有沒有這個 evals_result_

AttributeError: 'Booster' object has no attribute 'evals_result_'

因為不是用的分類器或者回歸器,而且是使用的train而不是fit進行訓練的,看過源碼fit才有evals_result_這個,導致訓練后沒有這個,但是又想獲取學習曲線,因此肯定還需要獲取訓練數據。

運行的結果 上面有數據,于是就想自己解析屏幕的數據試一下,屏幕可以看到有我們迭代過程的數據,因此想直接獲取屏幕上的數據,思維比較low但是簡單粗暴。

接下來分兩步完成:

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博客。

總結

以上是生活随笔為你收集整理的python遍历data、并输出结果_获取python运行输出的数据并解析存为dataFrame实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。