将千位分隔符中的数字转换为浮点数

Convert numbers in thousands separator into float

我是编程语言的新手,所以我一直在为简单的转换和计算进度而苦苦挣扎。你们能告诉我问题是什么以及如何解决吗? 我的数据由带有千位分隔符的各种列组成,不能用于计算。因为我想使用旧的计算来改变新列,所以我试图让字符串列成为一个浮点数。

我试过 replace(',','') 和语言环境,但遗憾的是它没有用。 下面是我的 DataFrame 的一部分。

Columns:
Title
Month
Country
Screens
Seats
Admission
Local_Currency
Units_per_USD

Index: 0
A 1 Z 77 6,468 2,053 482,455.00 17.126106 

Index: 1
B 2 Y 78 6,552 903 212,205.00 17.126106 

Index: 2    
C 1 X 52 4,368 1,054 247,150.00 17.126106 

目标:将 Local_Currency 除以 Units_per_USD,为 USD_Currency 绘制一个新列 我认为应该提前的步骤:将具有千位分隔符列的数字转换为 int、float,以便它可以适配算术运算。

s = df['Bo_local']
s = pd.to_numeric(s)

ValueError: Unable to parse string "482,455.00" at position 0

最简单的方法是只删除逗号,然后调用 float.

>>> s = '123,456.78'
>>> float(s.replace(',',''))
123456.78

在你的情况下,你需要 pandas.map:

data[column] = data[column].map(lambda s: s.replace(',',''))

这会将函数应用于列中的每个值。