Python脚本问题需要帮助

JustMeJustMe 成员职位:1新手
5月18日编辑 帮助
我有一些python行,用文本抓取填充缺失的值。我想在Rapidminer中执行这个python代码。当我在Pycharm中运行它时,它工作得很好,并给出了预期的输出。

所以我用def rm_main(data)改变了文件:但是当我运行这个过程时,我得到一个错误,某个项目没有正确的数据类型。进程失败:无法将这个值(属性'year')解析为数字:'Acura'

其他人也有这个问题吗?
我如何用Rapidminer调试代码?

提前感谢!:)

def rm_main(数据):
print(类型(数据))

你的代码放在这里
我要处理的第一个空值变量是“year”。查看其他变量,看看是否可以提取一些信息来帮助填充“nan”值,我发现“description”列里面有信息年份。问题是“description”列中也有“nan”值。积极的信息是“description”列中只有27个空值。#我只查看了“description”为空的观测值,发现在27个空值中,3个已经填充了“year”列,其余的几乎没有填充其他列的值。我的解决方案如下:用列“description”中包含的非空信息填充列“year”,并删除24个观测值中的整行,其中列“description”为空,因为我们将没有足够的信息。首先,我将删除列“year”和“description”为空的行。df1。dropna(子集=['year', 'description'], how='all', inplace=True) df1['year'] = df1。apply(lambda x: x['description'][:5] if math.isnan(x['year']) else x['year'], axis=1) #在“year”列中填充nan值后,有一些值不是年值,例如:'92 to', '03 je', 'Auto'和'Nice'。 I will transform these values by hand.
Df1 ['year'] = Df1。应用(lambda x: 1992 if x['year'] == '92 to' else x['year'], axis=1) df1['year'] = df1。Apply (lambda x: 2003 if x['year'] == '03 je' else x['year'], axis=1) df1.drop(df1. drop)loc[df1['year'] == 'Auto ']。指数,原地= True)df1。drop(df1.loc[df1['year'] == 'Nice '].index, inplace=True)
返回df1
标记:
    登录注册置评。