Python 如何绕过无法将字符串转换为浮点错误

Python 如何绕过无法将字符串转换为浮点错误,python,python-3.x,pandas,Python,Python 3.x,Pandas,我想这一定是一个超级基本的问题,但最近我一直在使用一个数据库,我试图预处理一些数据。不幸的是,我无法创建价格更改列,因为我无法将字符串转换为浮动 Example_Helper = DB_tool() df = Example_Helper.Get_Factor(name_in = ['Euro Stoxx 50 Pr']) df.sort_values(by=['TICKER','Date'], inplace=True) df['change_in_price'] = df[float('c

我想这一定是一个超级基本的问题,但最近我一直在使用一个数据库,我试图预处理一些数据。不幸的是,我无法创建价格更改列,因为我无法将字符串转换为浮动

Example_Helper = DB_tool() 
df = Example_Helper.Get_Factor(name_in = ['Euro Stoxx 50 Pr'])
df.sort_values(by=['TICKER','Date'], inplace=True)
df['change_in_price'] = df[float('close')].diff()

ValueError: could not convert string to float: 'close'
我已经打印了数据,所以我能够检查列标题是否不是数据帧的一部分,但是当我使用float函数时,它会返回错误。我已经添加了前几行数据的图片。任何帮助都将不胜感激

更改此行:

df['change_in_price'] = df[float('close')].diff()
为此:

df['change_in_price'] = df['close'].astype(float).diff()
或:


您可以使用
pd.to_numeric()
--将
errors='concurve'
转换为数值,或给出NaN。然后,您可以通过在布尔掩码中使用
.isna()
找到转换失败的值:

x = pd.to_numeric(df['mark'], errors='coerce')
x[ x.isna() ]

救生员!:)如果你不介意的话,你能不能快速解释一下为什么我把事情搞砸了?你是想把字符串“close”转换成float,而不是列“close”
x = pd.to_numeric(df['mark'], errors='coerce')
x[ x.isna() ]