0
我是熊猫新手,我刚开始采取包的多功能性。当用小练csv文件的工作,我把下面的数据:熊猫数据拉动 - 凌乱的字符串浮动
Rank Corporation Sector Headquarters Revenue (thousand PLN) Profit (thousand PLN) Employees
1.ÿ PKN Orlen SA oil and gas P?ock 79 037 121 2 396 447 4,445
2.ÿ Lotos Group SA oil and gas Gda?sk 29 258 539 584 878 5,168
3.ÿ PGE SA energy Warsaw 28 111 354 6 165 394 44,317
4.ÿ Jer¢nimo Martins retail Kostrzyn 25 285 407 N/A 36,419
5.ÿ PGNiG SA oil and gas Warsaw 23 003 534 1 711 787 33,071
6.ÿ Tauron Group SA energy Katowice 20 755 222 1 565 936 26,710
7.ÿ KGHM Polska Mied? SA mining Lubin 20 097 392 13 653 597 18,578
8.ÿ Metro Group Poland retail Warsaw 17 200 000 N/A 22,556
9.ÿ Fiat Auto Poland SA automotive Bielsko-Bia?a 16 513 651 83 919 5,303
10.ÿ Orange Polska telecommunications Warsaw 14 922 000 1 785 000 23,805
我有两个严重的问题,但我似乎无法找到解决办法:在“Ravenue”
1)数据和“利润”列被拉入字符串,因为有趣的格式与数千之间的空格,我似乎无法弄清楚如何使熊猫转换为浮点值。
2)“Rank”列下的数据被拉入为“1.?”,“2.?”那里发生了什么?再次,当我试图用“1.”,“2”等更适合的方式重写这些数据时。等等DataFrame只是不预算。
想法?建议?我也打开了彻底的抨击,因为我的问题可能是相当明显和愚蠢 - 请原谅我缺乏经验:)
“滑稽的格式与成千上万之间的空间”,实际上是波兰(以及俄罗斯)的方式来分隔千。不幸的是,波兰的数字区域似乎不被支持,但这个问题的第一个答案http://stackoverflow.com/questions/42937460/how-to-set-a-custom-thousands-separator提供了一种解决方法。至于第二个问题,我不确定'ÿ'来自哪里(它们实际上代表文件的末尾,EOF),但'df ['Rank'] = df ['Rank']。str.strip('ÿ ')'应该照顾他们。 – DyZ
1.您会发现在转换或使用数据之前,您经常需要“清理”数据。试试'df ['Revenue'] = df ['Revenue']。apply(lambda value:float(value.replace('','')))'and as for 2,你可以分享原始样本行CSV? – Quitty
@Quitty避免调用'apply',除非绝对必要,因为它会使您的代码减慢数量级。 'df ['Revenue'] = df ['Revenue']。str.replace('','')。astype(float)'更高效。 – DyZ