【发布时间】:2017-12-19 22:01:11
【问题描述】:
我正在使用 pandas 将 csv 文件导入 python,但数据框仅在一列中。我将来自The Player Standing Field table at this link (second one) 的逗号分隔格式的数据复制并粘贴到一个 excel 文件中,并将其保存为 csv(最初为 ms-dos,然后根据 AllthingsGo42 的建议保存为普通格式和 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/yr,Rdrs,Rdrs/yr,RF/9, RF/G,位置汇总
1,Fernando Abad\abadfe01,30,TOT,AL,57,0,0,46.2...
2,Jose Abreu\abreujo02,29,CHW,AL,152,152,150,1...
3、A.J. Achter\achteaaj01,27,LAA,AL,27,0,0,37.2,...
4,Dustin Ackley\ackledu01,28,NYY,AL,23,16,10,1...
5,克里斯蒂安·亚当斯\adamecr01,24,COL,NL,69,43,3...
也试过了:
dataset=pd.read_csv('MLB2016PlayerStats2.csv',encoding='ISO-8859-9',
delimiter=',',quoting=3)
返回:
"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"
下面是notepad++中数据的样子
"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"
抱歉,我之前的问题让我感到困惑。我希望这次编辑能把事情弄清楚。感谢那些迄今为止回答的人。
【问题讨论】:
-
“它不起作用”是什么意思?您收到错误消息了吗?
-
@user2314737 它会导入,但除非我使用 quoting=3,否则分隔符不会分隔数据。这拆分了数据,但将我描述的内容返回到了第一列和最后一列。
-
请提供示例代码sn-p、示例数据sn-p和完整的回溯(如果有)。如果您没有得到回溯,请详细说明所需数据格式与您当前获得的数据之间的差异。
-
来自可能具有不同区域设置的 PC 的 csv?它可能不是 UTF-8,即使它看起来像一个逗号,但它实际上可能是来自不同字符集的其他东西。我看到德国 PC 的 " 会发生这种情况。我会在记事本 ++ 中打开文本文件并仔细检查编码。
-
请在文本编辑器中打开
.csv并将前几行复制粘贴到您的问题中。
标签: python pandas csv delimiter