我有一個(gè)文本文件,如下所示:************************************************************************************************ English Premier Division - Saturday 25th May 2002************************************************************************************************================================================================================================ 2001/2 Assists================================================================================================Pos Player Club Apps Asts-------------------------------------------------------------------------1st David Beckham Man Utd 29 15 2nd Dean Gordon Middlesbrough 30 (1) 11 3rd John Collins Fulham 32 11 4th Ryan Giggs Man Utd 32 11 5th Kieron Dyer Newcastle 33 10 6th Sean Davis Fulham 23 (1) 10 7th Damien Duff Blackburn 30 (3) 10 8th Alan Smith Leeds 23 (6) 9 9th Jesper Gr?nkj?r Chelsea 34 9 我試圖把它讀成一個(gè)大熊貓數(shù)據(jù)幀,就像這樣:df = pd.read_table('assist1.txt', sep='\s+', skiprows=6, header=0,)此代碼引發(fā)異常 - pandas.errors.ParserError: 標(biāo)記數(shù)據(jù)時(shí)出錯(cuò)。C 錯(cuò)誤:預(yù)期第 31 行中有 7 個(gè)字段,看到 8 個(gè)字段。我想這是因?yàn)橥婕业拿趾托帐现g的空格(應(yīng)該是“玩家”列的值)。有沒(méi)有辦法做到這一點(diǎn)?
2 回答

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
另一種方法是將分隔符指定為多個(gè)空格,并將跳過(guò)列為行列表。我試過(guò)這個(gè),它給了我你預(yù)期的輸出。您可以編寫簡(jiǎn)單的腳本來(lái)查找要跳過(guò)的行以及要考慮的行。
df = pd.read_table('assist1.txt', sep='\s\s+', skiprows=[0,1,2,3,4,5,6,7,8,10], header=0,engine='python')

喵喔喔
TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
您使用空格作為分隔符,但這是固定長(zhǎng)度分隔的,而不是空格分隔的。你應(yīng)該谷歌固定長(zhǎng)度解析,例如 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_fwf.html。
添加回答
舉報(bào)
0/150
提交
取消