Python通过Pandas解析逻辑分析仪导出的CSV数据
- 脚本要解决的问题
- Python代码
- 备注:
脚本要解决的问题
为方便分析逻辑分析仪导出的csv数据, 简单做了个转换工具。。。
逻辑分析仪导出的csv数据是根据时间戳逐行排序,很难分析一个完整的帧数据,
例如下图:
下图逻辑分析仪工具导出的csv数据有3w多行,没办法直接通过该文件对数据帧进行分析,而且重点是。。。看时间长了太费眼!
所以通过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版本为:
这样看起来就方便多了, 其中txt里是为了方便数据搜索,而result. csv里才是详细数据。 (txt需要用NotePad++打开格式才正确)
备注:
执行过程中主要是靠python的Data重组运算, 如果数据量较大,可能需要等待一段时间,并占用大量内存。。。 我实测的7w多行数据总共大概要等十分钟, 所以还是尽量去掉无用数据,