无法将DataFrame转为float类型:astype(float)报错求助
解决"could not convert string to float"错误
问题根源是你的数据里用逗号作为小数点分隔符(比如0,199525),而pandas默认只识别点(.)作为小数点,导致读取后列类型为object,直接转float失败。下面是两种快速解决方法:
方法一:读取CSV时直接处理(推荐)
在read_csv中添加decimal=','参数,让pandas自动识别逗号为小数点,读取后直接得到数值类型:
data = pd.read_csv( '/Users/IRENE/DOCUMENTS/ire.csv', names=['Bullish','Neutral','Bearish','spread','Average'], header=None, parse_dates=True, decimal=',' # 指定小数分隔符为逗号 )
方法二:已读取数据后转换
如果已经把数据读进DataFrame,可先将所有数值列里的逗号替换为点,再转为float:
# 针对所有目标列处理 cols = ['Bullish','Neutral','Bearish','spread','Average'] data[cols] = data[cols].apply(lambda col: col.str.replace(',', '.').astype(float))
这样处理后,所有列都会变成float类型,后续计算就不会报错了。
内容的提问来源于stack exchange,提问作者ire
相关产品推荐
相关产品推荐

