繁体   English   中英

TypeError:isnull()接受1个位置参数,但给出了2个

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM