我在数据集中有一个“高度”列,如下所示。
Height
0 6-2
1 6-6
2 6-5
3 6-5
4 6-10
5 6-9
6 6-8
7 7-0
,它的类型为dtype: object
,现在我想将其转换为float,即我用 replace方法尝试过的6.2、6.6,但是它不起作用。你能建议我怎么做吗?我是熊猫新手。
答案 0 :(得分:4)
使用Series.str.replace
替换子字符串,并通过以下方式转换为浮点数:
df['Height'] = df['Height'].str.replace('-','.').astype(float)
或将Series.replace
与regex=True
一起使用以替换子字符串:
df['Height'] = df['Height'].replace('-','.', regex=True).astype(float)
答案 1 :(得分:1)
您可以使用lambda函数映射该列以对其进行更改。
df.loc[:,'Height'] = df.loc[:,'Height'].map(lambda x: float(str(x).replace('-','.')))
虽然我不知道您的用例,但是要小心一点。