用pandas Python将str转换为float

时间:2018-12-07 19:35:40

标签: python pandas dataframe

我需要将所有列数据从str更改为float,但是问题是我也有数字和'--'。 我想将所有'--'更改为0.00,然后我的objetivo变量可以工作。

import pandas as pd
df = pd.read_csv('status.csv')    
objetivo = df['BP Booked Imps Budget (lifetime)'].astype(float)

错误:ValueError: could not convert string to float: --

csv:

BP Booked Imps Budget (lifetime), Imp
--,5555444
--,342345
--,245632
--,2345467
21345,3456
1234,34567
456,324567
123456,7654
--,6543

2 个答案:

答案 0 :(得分:0)

沿着已经做的事情,您可以做

df['BP Booked Imps Budget (lifetime)'].replace('--', 0).astype(float)

一种不同的方法是

pd.to_numeric(df['BP Booked Imps Budget (lifetime)'], errors='coerce').fillna(0)

答案 1 :(得分:0)

据我了解,

df['BP Booked Imps Budget (lifetime)'] = df['BP Booked Imps Budget (lifetime)'].apply(lambda x: 0.0 if x == '--' else x)
df['objectivo'] = df['BP Booked Imps Budget (lifetime)'].astype(float)