在将Excel读入数据帧时,默认情况下,百分比值应转换为float
,但是当任何行中的值为0时,pandas
会将其读取为{{1 }} 默认情况下。
任何人都可以建议一种方法来将列读为object
吗?
当我尝试使用转换器或float
函数进行转换时,出现以下错误astype
。
答案 0 :(得分:1)
您需要从数据集中删除“%”
df['column_name'].apply(lambda x : x.replace('%','')).astype(float)
答案 1 :(得分:0)
如果您可以提供数据样本,那就太好了(对我们而言,测试代码要容易得多)。但是,据我从错误中可以看出,问题出在pandas
分类为字符串并因此将整个列设置为object
的百分比符号上。
您可以通过%
删除str.replace
,然后使用astype
函数。
示例:
df = pd.DataFrame({'perc': ['100%', '24%', '2%']})
df['perc'] = df['perc'].str.replace('%', '').astype(float)