我试图将某些列中的所有值转换为浮点美元金额,在预先存在的列中,它们之前有一个美元符号,但是,它们是包含整个美元金额的字符串数。这些列中的所有单元格的值都不是(NaN)。
我从读取.csv文件导入此文件,该文件已分配给变量道具,我希望将值从以下列转换为浮点数:土地价值,改善价值',总价值,和销售价格
此时我的代码是
#MULTIPLIZIEREN
class Multiplizieren:
def __init__(self,name):
self.name = name
self.a = rdm.randint(5,20)
self.b = rdm.randint(4,50)
self.c = rdm.randint(2,200)
def punktstrich(self):
finished = False
while not finished:
c = self.a*self.b-self.c
if c < 0 or c > 100:
print('OUT OF RANGE')
return
else:
print(self.a, '*', self.b, '-', self.c, '=', self.a*self.b-self.c)
finished = True
return c
我如何将这4列中的值转换为浮点美元金额?
答案 0 :(得分:0)
这应该可以解决大多数情况。删除带有替换的美元符号,然后pandas.to_numeric()
将其转换为浮点数。任何不是数字的内容都会被强制转移到np.NaN
,并为您提供dtype: float64
import pandas as pd
import numpy as np
df = pd.DataFrame({'Land Value': ['$10.31', '$17.81', np.NaN, 'NaN', None, '$ 102.13']})
pd.to_numeric(df['Land Value'].str.replace('$', ''), errors='coerce')
#0 10.31
#1 17.81
#2 NaN
#3 NaN
#4 NaN
#5 102.13
#Name: Land Value, dtype: float64
请确保最后将其分配回来。
col_list = ['Land Value', 'Improvement Value', 'Total Value', 'Sale Price']
for item in col_list:
props[item] = pd.to_numeric(props[item].str.replace('$', ''), errors='coerce')