我是Pandas的新手,我刚刚开始考虑包装的多功能性。在使用一个小练习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
我有两个严重的问题,我似乎无法找到解决方案:
1)" Ravenue"和"利润"列被作为字符串拉入,因为有趣的格式与数千之间的空格,我似乎无法弄清楚如何使Pandas转换为浮点值。
2)" Rank"下的数据列被拉入" 1。?"," 2.?"那里发生了什么?同样,当我试图用更合适的东西重新编写这些数据时,例如" 1。"," 2。"等DataFrame只是没有让步。
想法?建议?我也是公开进行彻底的抨击,因为我的问题可能非常明显和愚蠢 - 请原谅我缺乏经验:)
答案 0 :(得分:0)
我会使用converters
参数。
将此传递给您的pd.read_csv
电话
def space_float(x):
return float(x.replace(' ', ''))
converters = {
'Revenue (thousand PLN)': space_float,
'Profit (thousand PLN)': space_float,
'Rank': str.strip
}
pd.read_csv(... converters=converters ...)