我是编程语言的新手,所以我一直在为简单的转换和计算进度而苦苦挣扎。你们能告诉我什么问题以及如何解决吗? 我的数据由带有千位分隔符的各种列组成,这些列不能用于计算。由于我想使用旧的计算来对新列进行变异,因此我尝试让字符串列为浮点型。
我尝试了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
答案 0 :(得分:2)
最简单的方法是先删除逗号,然后调用float
。
>>> s = '123,456.78'
>>> float(s.replace(',',''))
123456.78
在您的情况下,您需要pandas.map
:
data[column] = data[column].map(lambda s: s.replace(',',''))
这会将函数应用于列中的每个值。