Python解析CSV数据 - 通过Pandas解析逻辑分析仪导出的CSV数据

系统 1969 0

Python通过Pandas解析逻辑分析仪导出的CSV数据

  • 脚本要解决的问题
  • Python代码
  • 备注:

脚本要解决的问题

为方便分析逻辑分析仪导出的csv数据, 简单做了个转换工具。。。
逻辑分析仪导出的csv数据是根据时间戳逐行排序,很难分析一个完整的帧数据,

例如下图:
下图逻辑分析仪工具导出的csv数据有3w多行,没办法直接通过该文件对数据帧进行分析,而且重点是。。。看时间长了太费眼!
Python解析CSV数据 - 通过Pandas解析逻辑分析仪导出的CSV数据_第1张图片
所以通过Pandas简单对数据做些行列变换,好方便查看与分析数据、

Python代码

Python脚本如下:

            
              
                import
              
               pandas 
              
                as
              
               pd

              
                import
              
               numpy 
              
                as
              
               np

              
                import
              
               time


              
                def
              
              
                WritetoFile
              
              
                (
              
              FileName
              
                ,
              
              Data
              
                )
              
              
                :
              
              
                #fileName= 'record.txt'
              
              
                with
              
              
                open
              
              
                (
              
              FileName
              
                ,
              
              
                'w'
              
              
                )
              
              
                as
              
               record
              
                :
              
              
        strr 
              
                =
              
              
                "\n"
              
              
        content 
              
                =
              
               strr
              
                .
              
              join
              
                (
              
              Data
              
                )
              
              
        record
              
                .
              
              write
              
                (
              
              content
              
                +
              
              
                '\n'
              
              
                )
              
              
                print
              
              
                (
              
              
                'Data processing.... pls. wait and make sure rename input file to input.csv..'
              
              
                )
              
                      
df 
              
                =
              
               pd
              
                .
              
              read_csv
              
                (
              
              
                'input.csv'
              
              
                ,
              
               low_memory
              
                =
              
              
                False
              
              
                )
              
              


data 
              
                =
              
               df
              
                .
              
              set_index
              
                (
              
              
                [
              
              
                'Packet ID'
              
              
                ,
              
              
                'Address'
              
              
                ,
              
              
                'Read/Write'
              
              
                ,
              
              
                'ACK/NAK'
              
              
                ,
              
              
                'Time [s]'
              
              
                ]
              
              
                )
              
              

st 
              
                =
              
               data
              
                .
              
              unstack
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              st
              
                )
              
              
                print
              
              
                (
              
              
                'Finish processing, now create result file....'
              
              
                )
              
              

st
              
                .
              
              to_csv
              
                (
              
              
                'result.csv'
              
              
                )
              
              

st
              
                .
              
              to_csv
              
                (
              
              
                'resultTag.txt'
              
              
                ,
              
              sep
              
                =
              
              
                ' '
              
              
                )
              
              
                print
              
              
                (
              
              
                'All Done!, please check resultTag.txt and result.csv'
              
              
                )
              
              
                print
              
              
                (
              
              
                'this window will close after 5s'
              
              
                )
              
              

time
              
                .
              
              sleep
              
                (
              
              
                5
              
              
                )
              
            
          

转换结果txt版本为:

Python解析CSV数据 - 通过Pandas解析逻辑分析仪导出的CSV数据_第2张图片

转换结果csv版本为:
Python解析CSV数据 - 通过Pandas解析逻辑分析仪导出的CSV数据_第3张图片

这样看起来就方便多了, 其中txt里是为了方便数据搜索,而result. csv里才是详细数据。 (txt需要用NotePad++打开格式才正确)

备注:

执行过程中主要是靠python的Data重组运算, 如果数据量较大,可能需要等待一段时间,并占用大量内存。。。 我实测的7w多行数据总共大概要等十分钟, 所以还是尽量去掉无用数据,

在这里插入图片描述
Python解析CSV数据 - 通过Pandas解析逻辑分析仪导出的CSV数据_第4张图片


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论