熊猫:计算列均值会产生空值

克莱曼

我有一个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 )。

知道我做错了什么吗?

谢谢!

BEN_YO

试试看

 (df.iloc[:100000, 180:-1].isnull().sum()==100000).any()

如果此返回True,则意味着您的列值全部NaN在前100000行中

现在让我们解释一下为什么要对整个数据帧notnull执行所有操作mean,因为mean具有skipna 默认值True它将NaNmean

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章