【问题标题】:How do I fix this "TypeError: float() argument must be a string or a number, not 'method'" Error?如何解决此“TypeError:float() 参数必须是字符串或数字,而不是'方法'”错误?
【发布时间】:2018-09-26 22:32:09
【问题描述】:

我尝试使用 imputer 将数据库的所有 NaN 部分替换为其相关列的平均值。例如,我想修复我的数据库中工资列下的空白条目,并且我希望该空白部分填充该列下的平均工资值。我尝试按照教程执行此操作,但我认为视频已过时,导致此错误。
代码:

#Data Proccesing 

#Importing the Libaries 
import numpy as np
import matplotlib.pyplot as plt 
import pandas as pd

# Importing the dataset 
dataset = pd.read_csv("Data.csv") 
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 3].values 

#Taking care of Missig Data 
from sklearn.preprocessing import Imputer 
#The source of all the problems
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:, 1:3]) 
X[:, 1:3] = imputer.transform

最初,在使用 Imputer 之前编译时,X 看起来像这样:

但是,一旦我编译了第 16-18 行,我就收到了这个错误,我不知道该怎么办

【问题讨论】:

  • 该错误准确地解释了如何解决该问题。 float() argument must be a string or a number, not 'method'。为了帮助诊断,您可以拆分代码并使用type 函数来验证类型。
  • 请不要在图片中发布终端/代码输出。原因请看这里:unix.meta.stackexchange.com/q/4086/40481
  • 谢谢你,从现在开始我将不再这样做。

标签: python machine-learning data-science


【解决方案1】:

线

imputer.transform

应该是

imputer.transform()

...用括号实际调用该方法,而不是将其名称分配给某物。

【讨论】:

  • 我应该输入 imputer.transform() 还是 imputer.transform(X[:, 1:3])?
  • 我相信是后者。自己尝试一下,看看哪一个有理想的结果。
  • 天哪!它确实有效!非常感谢你,在我感觉好像没有人可以求助的时候,你真的帮助了我。
  • 这就是我们在这里的目的!如果它有效,请将这个答案标记为已接受 - 这样其他有类似问题的用户也可以得到帮助:)
猜你喜欢
  • 1970-01-01
  • 2022-01-09
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 2017-08-29
相关资源
最近更新 更多