我有一个pandas DataFrame,df
我想只使用前100K行来获取到第180列到最后的平均值(不包括最后一列)。
如果我使用整个DataFrame:
df.mean().isnull().any()
我懂了 False
如果仅使用前10万行:
train_means = df.iloc[:100000, 180:-1].mean()
train_means.isnull().any()
我得到: True
我不确定这是怎么可能的,因为第二种方法只是获取整个DataFrame的子集的列均值。因此,如果完整DataFrame中的任何列均不具有NaN
,则我看不到完整DataFrame的子集中的列如何。
为了它的价值,我跑了:
df.columns[df.isna().all()].tolist()
我得到:[]
。因此,我认为每个条目都没有任何列NaN
(这NaN
在我的train_means
计算中会导致a )。
知道我做错了什么吗?
谢谢!
试试看
(df.iloc[:100000, 180:-1].isnull().sum()==100000).any()
如果此返回True
,则意味着您的列值全部NaN
在前100000行中
现在让我们解释一下为什么要对整个数据帧notnull
执行所有操作mean
,因为mean
具有skipna
默认值,True
它将NaN
在mean
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句