Python:导入的csv没有被分割成适当的列

2024-10-01 09:20:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pandas将csv文件导入python,但是数据框只在一列中。我从The Player Standing Field table at this link (second one)中复制并粘贴了逗号分隔格式的数据到excel文件中,并将其保存为csv(最初为ms-dos,然后按照AllthingsGo42的建议,同时以normal和utf-8格式保存)。但它只返回一个单列数据帧。在

我尝试过的例子:

dataset=pd.read('MLB2016PlayerStats2.csv')

dataset=pd.read('MLB2016PlayerStats2.csv', delimiter=',')

dataset=pd.read_csv('MLB2016PlayerStats2.csv',encoding='ISO-8859-9', 
delimiter=',')

上面的每一行代码都返回:

Rk、姓名、年龄、Tm、Lg、G、GS、CG、Inn、Ch、PO、A、E、DP、Fld%、Rtot、Rtot/年、Rdrs、Rdrs/年、RF/9、RF/G、Pos汇总 1,费尔南多·阿巴德(Fernando Abad)\abadfe01,30,总计,AL,57,0,0,46.2…
2,Jose Abreu\abreujo02,29,阿拉巴马州CHW,152152150,1…
3,A.J.Achter\achteaj01,27,LAA,AL,27,0,0,37.2,…
4,达斯汀·阿克利\ackledu01,28,纽约,阿拉巴马州,23,16,10,1…
5,克里斯蒂安·阿达姆斯\阿达梅克01,24,列,荷兰,69,43,3。。。在

也尝试过:

^{pr2}$

它返回:

"Rk                        Name  Age   Tm  Lg    G   GS   CG     Inn    Ch  
\
0  "1      Fernando Abad\abadfe01   30  TOT  AL   57    0    0    46.2     4   

1  "2        Jose Abreu\abreujo02   29  CHW  AL  152  152  150  1355.2  1337   

2  "3       A.J. Achter\achteaj01   27  LAA  AL   27    0    0    37.2     6   

3  "4     Dustin Ackley\ackledu01   28  NYY  AL   23   16   10   140.1    97   

4  "5  Cristhian Adames\adamecr01   24  COL  NL   69   43   38   415.0   212   

   E   DP   Fld%  Rtot  Rtot/yr  Rdrs  Rdrs/yr  RF/9  RF/G  \
0      ...        0    1  1.000   NaN      NaN   NaN      NaN  0.77  0.07   
1      ...       10  131  0.993  -2.0     -2.0  -5.0     -4.0  8.81  8.73   
2      ...        0    0  1.000   NaN      NaN   0.0      0.0  1.43  0.22   
3      ...        0    8  1.000   1.0      9.0   3.0     27.0  6.22  4.22   
4      ...        6   24  0.972  -4.0    -12.0   1.0      3.0  4.47  2.99   

Pos Summary"  
0            P"  
1           1B"  
2            P"  
3     1B-OF-2B"  
4     SS-2B-3B"  

下面是记事本++中的数据

"Rk,Name,Age,Tm,Lg,G,GS,CG,Inn,Ch,PO,A,E,DP,Fld%,Rtot,Rtot/yr,Rdrs,Rdrs/yr,RF/9,RF/G,Pos Summary"
"1,Fernando Abad\abadfe01,30,TOT,AL,57,0,0,46.2,4,0,4,0,1,1.000,,,,,0.77,0.07,P"
"2,Jose Abreu\abreujo02,29,CHW,AL,152,152,150,1355.2,1337,1243,84,10,131,.993,-2,-2,-5,-4,8.81,8.73,1B"
"3,A.J. Achter\achteaj01,27,LAA,AL,27,0,0,37.2,6,2,4,0,0,1.000,,,0,0,1.43,0.22,P"
"4,Dustin Ackley\ackledu01,28,NYY,AL,23,16,10,140.1,97,89,8,0,8,1.000,1,9,3,27,6.22,4.22,1B-OF-2B"
"5,Cristhian Adames\adamecr01,24,COL,NL,69,43,38,415.0,212,68,138,6,24,.972,-4,-12,1,3,4.47,2.99,SS-2B-3B"
"6,Austin Adams\adamsau01,29,CLE,AL,19,0,0,18.1,1,0,0,1,0,.000,,,0,0,0.00,0.00,P"

很抱歉我之前的问题有点混乱。我希望这次编辑能把事情弄清楚。感谢到目前为止回答的人。在


Tags: csv数据readnandatasettmpdrk
2条回答

不需要为csv调用分隔符。您只需将分隔符从“;”改为“,”。为此,您可以用记事本打开csv文件,并使用替换工具更改它们。在

我自己运行得很快,我能够得到我所理解的是期望的输出。在

enter image description here

我唯一的想法是,没有必要为csv调用分隔符,因为csv是一个逗号分隔的变量文件,但这并不重要。我认为你的实际数据文件有一些不正确的地方,我会去确保它保存正确。我会重复前面的评论,并确保csv是UTF-8,而不是MS-DOS或Macintosh(在excel中保存时这两个选项都可以)

祝你好运!在

相关问题 更多 >