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

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

使用不帶引號的字符串將文本文件解析為 python

使用不帶引號的字符串將文本文件解析為 python

開滿天機 2021-11-02 20:18:38
我正在嘗試將長.txt文本表解析為pd.DataFrame. 或 Python 中的任何其他可讀形式。我成功地嘗試了一種方法來做到這一點,但我對它并不完全滿意,我確實想改進它。這是我的一個子集.txt:USAF   WBAN  STATION NAME                  CTRY ST CALL  LAT     LON      ELEV(M) BEGIN    END007018 99999 WXPOD 7018                                  +00.000 +000.000 +7018.0 20110309 20130730007026 99999 WXPOD 7026                    AF            +00.000 +000.000 +7026.0 20120713 20170822007070 99999 WXPOD 7070                    AF            +00.000 +000.000 +7070.0 20140923 20150926008260 99999 WXPOD8270                                   +00.000 +000.000 +0000.0 19960101 20100731008268 99999 WXPOD8278                     AF            +32.950 +065.567 +1156.7 20100519 20120323008307 99999 WXPOD 8318                    AF            +00.000 +000.000 +8318.0 20100421 20100421008411 99999 XM20                                                                 20160217 20160217008414 99999 XM18                                                                 20160216 20160217008415 99999 XM21                                                                 20160217 20160217008418 99999 XM24                                                                 20160217 20160217010000 99999 BOGUS NORWAY                  NO      ENRS                           20010927 20041019010010 99999 JAN MAYEN(NOR-NAVY)           NO      ENJA  +70.933 -008.667 +0009.0 19310101 20190203我嘗試了以下方法:測試 1:re用于解析空格:with open('test.txt') as f:   lines = f.readlines()   parsed_lines = [re.split("\s+", line) for line in lines]print(test)['007018', '99999', 'WXPOD', '7018', '+00.000', '+000.000', '+7018.0', '20110309', '20130730', '']這是好的,但遠非最佳,站名被拆分為另一個列表元素,這僅顯示了我的不良regex能力。    })這產生了一個很pd.DataFrame容易清潔的好東西。這是一個很好的方法,但我肯定不是一個很好的方法,有什么方法可以改進這個功能嗎?我希望這段代碼完美無缺,我不相信那些硬編碼的位置。我知道有些工具喜歡sed或awk非常有用,但現在我只能在這個上運行 python;當然subprocess可以做到這一點,但我想依靠 Python 來做到這一點。
查看完整描述

1 回答

?
絕地無雙

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

Imo,這絕對看起來像一個固定寬度的格式,即每列都有自己的固定數量的字符。

所以,iiuc 你的問題是什么,你應該嘗試pd.read_fwf().
https://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.read_fwf.html


查看完整回答
反對 回復 2021-11-02
  • 1 回答
  • 0 關注
  • 293 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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