亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Pandas 解析數據文件,其中標題可能會更改位置

使用 Pandas 解析數據文件,其中標題可能會更改位置

慕容3067478 2022-07-12 09:56:47
我必須為我們在工作中使用的數據文件編寫一個解析器。我選擇 Pandas 是因為我讀過它的速度非??欤倚阅苁撬囊淮笾攸c。作為旁注,我在今天之前從未使用過 Pandas。據我了解,我需要告訴 Pandas 我的標題行在類似 CSV 的文件中的位置。但是在實際數據開始之前,工作中的文件可能具有可變數量的行。例子:Software :SomeCorpSoft 2.3.4Measurement Name;defaultCreated;2017-11-30T11:42:09ZScan Type;Threshold scanSerial Number;A-SERIAL-NUM-1234Sensor Nickname;Trend Count;1Trigger Level;0Trigger Holdoff;0start;0end ;0F1; 44.12; H; 8;Time;F1 ;V 1 ;Hp 1 ;C 1 ;P 1 ;V 2 ;Hp 2 ;C 2 ;P 2 ;V 3 ;Hp 3 ;C 3 ;P 3 ;V 4 ;Hp 4 ;C 4 ;P 4 ;V 5 ;Hp 5 ;C 5 ;P 5 ;V 6 ;Hp 6 ;C 6 ;P 6 ;V 7 ;Hp 7 ;C 7 ;P 7 ;V 8 ;Hp 8 ;C 8 ;P 8 ;0;13.448671;349.458099365;0;7.72320135575;-105.609801195;8.54580983665;-15.5168133183;0.0477259658688;101.686749515;4.46981738574;152.711715748;0.0728701513916;77.1428145399;17.8438225472;-163.940792731;0.95931622744;48.4915601658;0.525170185762;-85.3977558257;0.255517896038;-58.4781138655;2.0410204213;131.266863348;0.291022526301;-145.942080277;12.7706899744;-150.335793306;1.3724642398;-161.919972567;5.3790623792;-148.609825665;0.512542366745;-177.811876518;所以在這個例子中,我的實際標題在第 14 行(如果它忽略空行,則為第 13 行,對此不確定),它以Time開頭(這是一個常數,所以也許某種 lambda 方法可以考慮到這一點?)但我還需要前面的幾行,以便在數據庫中形成不同的對象(例如,“ Created; ”給了我測量的時間)。然后我必須為每個標題創建對象實例。它們確實與下面的數據一致,例如:Time -> 0F1 -> 13.448671V1 -> 349.458099365... so on...所以我有import pandas as pddf = pd.read_csv(file_dir)for i in df.values:    for x in i:        if "Software" in x:            software_ver = x.split(':')[1]        if "Time" in x:            headers = x但這感覺“便宜”?可能有一種 Pandas 方法可以做到這一點。在那之后,我計劃在標題之后對每一行進行壓縮,因為它們都匹配,這樣我就可以將值與標題配對,但同樣,這可能是一種更好的方法,更有效。這些文件可能有幾十萬行,我必須為每一行的每個標題元素創建一個對象實例。我們當前的解析器需要幾分鐘的時間,但我需要把時間縮短。
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

Pandas不是解析器。在數據處理方面,它是一個很棒的庫,它為簡單的數據格式提供了一些解析器。這種文件格式不能用 Pandas 解析,至少不能簡單而且可能效率不高。

pandas 是否相關取決于您想要進行的處理。如果您打算能夠進行中等復雜度的操作,它可能是。如果您只需要提供一個數據庫表,請忘記它。

如果需要高性能,您可能也應該忘記 Python。它確實是一門優秀的語言,我真的很喜歡用 Python 編程。但是如果只是要求盡可能快地解析文件,我會使用C。如果涉及到數據庫,首先要優化的部分不是文件解析,而是數據庫訪問。

換句話說,這就像用錘子敲螺絲一樣。最后螺絲將在板內,如果你只有一把錘子,它可能是解決方案。但是最好用螺絲刀...


查看完整回答
反對 回復 2022-07-12
  • 1 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號