熊猫将以“ 0%”为对象的列转换为非浮点数

时间:2019-08-07 10:28:29

标签: pandas

在将Excel读入数据帧时,默认情况下,百分比值应转换为float,但是当任何行中的值为0时,pandas会将其读取为{{1 }} 默认情况下。

任何人都可以建议一种方法来将列读为object吗?

当我尝试使用转换器或float函数进行转换时,出现以下错误astype

2 个答案:

答案 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)