Pandas数据拉 - 凌乱的字符串浮动

时间:2017-04-13 05:43:22

标签: python csv pandas

我是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只是没有让步。

想法?建议?我也是公开进行彻底的抨击,因为我的问题可能非常明显和愚蠢 - 请原谅我缺乏经验:)

1 个答案:

答案 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 ...)