Python通過Pandas解析邏輯分析儀導(dǎo)出的CSV數(shù)據(jù)
- 腳本要解決的問題
- Python代碼
- 備注:
腳本要解決的問題
為方便分析邏輯分析儀導(dǎo)出的csv數(shù)據(jù), 簡單做了個轉(zhuǎn)換工具。。。
邏輯分析儀導(dǎo)出的csv數(shù)據(jù)是根據(jù)時間戳逐行排序,很難分析一個完整的幀數(shù)據(jù),
例如下圖:
下圖邏輯分析儀工具導(dǎo)出的csv數(shù)據(jù)有3w多行,沒辦法直接通過該文件對數(shù)據(jù)幀進(jìn)行分析,而且重點(diǎn)是。。。看時間長了太費(fèi)眼!
所以通過Pandas簡單對數(shù)據(jù)做些行列變換,好方便查看與分析數(shù)據(jù)、
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
)
轉(zhuǎn)換結(jié)果txt版本為:
這樣看起來就方便多了, 其中txt里是為了方便數(shù)據(jù)搜索,而result. csv里才是詳細(xì)數(shù)據(jù)。 (txt需要用NotePad++打開格式才正確)
備注:
執(zhí)行過程中主要是靠python的Data重組運(yùn)算, 如果數(shù)據(jù)量較大,可能需要等待一段時間,并占用大量內(nèi)存。。。 我實(shí)測的7w多行數(shù)據(jù)總共大概要等十分鐘, 所以還是盡量去掉無用數(shù)據(jù),
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
