如何将表示为字符串的数字转换为浮点数

2024-06-28 19:51:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个数字如“4,3”表示为数据类型字符串的列转换为float

数据帧:

<class 'pandas.core.frame.DataFrame'> Int64Index: 19147 entries, 0 to 21491 Data columns (total 13 columns): # Column
Non-Null Count Dtype
--- ------ -------------- ----- 0 PremiseID 19147 non-null int64 1 PremiseName 19147 non-null object 2 Category 19147 non-null object 3 Region
19147 non-null object 4 InhabitantsCount 19147 non-null int64 5 DistanceCityCentre 19147 non-null int64 6 FacebookLikes
19147 non-null float64 7 RatingValue 19147 non-null object 8 RatingCount 19147 non-null int64 9
OpeningSaturday 19147 non-null float64 10 ClosingSaturday
19147 non-null float64 11 DrinkItem 19147 non-null object 12 Price 19147 non-null object dtypes: float64(3), int64(4), object(6) memory usage: 2.0+ MB

我试过:

# Convert data types
conv_dict = {
    'FacebookLikes': int,
    'RatingValue': float,
    'Price': int,
}

df = df.astype(conv_dict)

错误:

ValueError: could not convert string to float: '4,3'


Tags: columnstodfobjectfloatnullpricedict
1条回答
网友
1楼 · 发布于 2024-06-28 19:51:09

创建一个新的转换函数来处理这个输入4,3

def float_conv(val):
   return float(val.replace(',','.'))

并使用它

conv_dict = {
    'FacebookLikes': int,
    'RatingValue': float_conv,
    'Price': int,
}

相关问题 更多 >