我需要将所有列数据从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
答案 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)