我有一個文本文件,如下所示:************************************************************************************************ 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 我試圖把它讀成一個大熊貓數據幀,就像這樣:df = pd.read_table('assist1.txt', sep='\s+', skiprows=6, header=0,)此代碼引發異常 - pandas.errors.ParserError: 標記數據時出錯。C 錯誤:預期第 31 行中有 7 個字段,看到 8 個字段。我想這是因為玩家的名字和姓氏之間的空格(應該是“玩家”列的值)。有沒有辦法做到這一點?
2 回答

慕村9548890
TA貢獻1884條經驗 獲得超4個贊
另一種方法是將分隔符指定為多個空格,并將跳過列為行列表。我試過這個,它給了我你預期的輸出。您可以編寫簡單的腳本來查找要跳過的行以及要考慮的行。
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貢獻1735條經驗 獲得超5個贊
您使用空格作為分隔符,但這是固定長度分隔的,而不是空格分隔的。你應該谷歌固定長度解析,例如 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_fwf.html。
添加回答
舉報
0/150
提交
取消