Pandas数据分析-结课作业

Pandas数据分析-结课作业

记录DataWhale的Pandas数据分析的学习过程,使用的教材为 joyful-pandas
本次是最终测试,本篇文章中的测试题及源数据可以从此链接中下载,需要的童鞋可以点击链接自取。

显卡日志

在这里插入图片描述
思路:首先读取txt文件,文件读入后是字符串格式的,需要从字符串中提取出关键词,在字符数据那一节,讲过利用str.extract(正则表达式)提取出需要显示的信息。从原始的txt文件中可以看出,一个模型的数据是分两行写的,这样在利用正则提取信息的时候会带来麻烦,所以在使用str.extract()之前,需要将相邻的两行字符合并成一个字符,使用str.cat()即可达到这个目的。合并字符串以后,再用str.extract()即得包含关键信息的DataFrame。
得到DataFrame之后,观察DF可知,此时DF是一个长表,而题目要求得到一个宽表,所以下一步就是使用df.pivot()进行长宽表转换,至此可以得到答案。

import pandas as pd
import numpy as np

txt=pd.read_table('benchmark.txt',header=None)#header=None,首行不做列索引
txt=txt[10:-2].reset_index(drop=True)[0] #txt文件前几行有一些描述性信息,需要先剔除掉。


temp1=txt.loc[txt.index.values %2==0].reset_index(drop=True)# 偶数行
temp2=txt.loc[txt.index.values %2!=0].reset_index(drop=True)# 奇数行
x=temp1.str.cat(temp2,sep='-')#奇数行和偶数行拼接到一起
x=x.str.extract('Benchmarking \w+ (\w+) precision type (.+)-\w+  model average (.+) time :  (\d+.\d+) ms') #用正则匹配关键信息

x=x.rename(columns={0:'precision',1:'model',2:'status',3:'time'})#对列索引重命名
x['temp']=x.status.str.capitalize().str.cat(x.precision,sep='_')#合并两列,方便后续变形。
x=x[['model','time','temp']]

x=x.pivot(index='model', columns='temp', values='time')#变形

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值