[英]TypeError: isnull() takes 1 positional argument but 2 were given
y = df.var3
X_train, X_test, y_train, y_test = train_test_split(X, y)
tmp = pd.to_numeric(y_train, errors='coerce')
运行
mask = df.isnull(tmp)
导致
TypeError:isnull()接受1个位置参数,但给出了2个
看一下tmp的形状:
>>> tmp.shape
(12731,)
似乎只有1列。
在tmp中查看数据时,我发现有2列-第一列具有索引(按乱序排列),第二列具有实际值。 我以为tmp有2列,但似乎任何系列类型对象始终都有一个索引列。 此外,该形状也仅指示一列。
切片系列(使用iloc)也不起作用,因为“索引器太多”。
我是否在尝试查找没有错误的错误?
这与tmp
的列数无关。
DataFrame.isnull()
方法只是不带参数 。 这是数据框上的一种方法,因此Python将数据框作为第一个self
变量传递,而您将第二个参数传递给tmp
。
您声明tmp
是Pandas Series
对象( pandas.to_numeric()
也可能产生了一个numpy数组,并且您没有指定train_test_split()
返回的值)。 如果是这样,则只需致电:
mask = tmp.isnull()
因为有一个Series.isnull()
方法 ,就像有一个DataFrame.isnull()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.