我有一个文本文件,如下所示:************************************************************************************************ 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
提交
取消