我无法将一列的数据类型从对象转换为 int 或在数据框中浮动

i cannot convert the data type of one column from object to int or float in dataframe

我一直在使用 Python 学习数据分析和可视化,但我无法将某些数据框组件的数据类型从一种形式更改为另一种形式 在此代码片段中,我想将小数数据更改为整数 我需要将 RottenTomatoes 和 IMDb 更改为整数或浮点数,以便我可以使用可视化模型并将小数数据转换为整数 screenshot of the dataframe output

我尝试使用以下代码转换它们:

movieRatings['RottenTomatoes'] = movieRatings['RottenTomatoes'].fillna(0/100).astype('int')

调用了以下错误:

ValueError: invalid literal for int() with base 10: '100/100'

我假设您想提取这些分数的分子并将其转换为 int(或 float)。

如果是这种情况,要转换成int你可以:

>>> int(('95/100').split('/')[0])
95

在pandas中,这将变为:

movieRatings['RottenTomatoes'] = movieRatings['RottenTomatoes'].fillna('0/100').apply(lambda x: int((x).split('/')[0]))

请记住,您还应该更改 .fillna,以便该值是一个字符串(0/100 是一个浮点数)。

你可以试试

movieRatings['RottenTomatoes'] = movieRatings['RottenTomatoes'].fillna('0/100').apply(eval)

# or

import ast

movieRatings['RottenTomatoes'] = movieRatings['RottenTomatoes'].fillna('0/100').apply(ast.literal_eval)
   RottenTomatoes
0            0.99
1            0.96
2            0.00