python - Pandas:计算按列平均值会产生空值

标签 python pandas

我有一个 pandas DataFrame,df,我想仅使用前 100K 行来获取从第 180 列到末尾(不包括最后一列)的平均值。

如果我使用整个 DataFrame:

df.mean().isnull().any()

我得到错误

如果我只使用前 100K 行:

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

我得到:正确

我不确定这是如何可能的,因为第二种方法只是获取完整 DataFrame 的子集的列平均值。因此,如果完整 DataFrame 中没有列的平均值为 NaN,我不知道完整 DataFrame 子集中的列会如何。

无论如何,我跑了:

df.columns[df.isna().all()].tolist()

我得到:[]。因此,我认为我没有任何列的每个条目都是 NaN (这会导致我的 train_means 计算中出现 NaN)。

知道我做错了什么吗?

谢谢!

最佳答案

尝试看看

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

如果返回 True ,这意味着前 100000 行中的列值全部为 NaN

现在让我们解释一下为什么在对整个数据帧执行 mean 时会得到所有 notnull ,因为 meanskipna 默认True,因此它会在mean之前删除NaN

关于python - Pandas:计算按列平均值会产生空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54994361/

相关文章:

Python Enum 在对成员值使用相同的字典时显示奇怪的行为

python - 转换数据帧(转置)

python pandas - 修改索引日期

python - 如何查明数据框中的行是否已存在于单独的数据框中?

python - 字典的嵌套列表与将字典的嵌套列表放入Pandas数据框中

python - 使用 mongo-hadoop 将 Hadoop 流式传输到 python

python - 一个用于从 python 中的文件中删除空行的衬垫?

python - Seaborn jointplot 十六进制选项不生成图形

python - python 中的日期时间荒谬错误

python - 类型错误 : unsupported operand type(s) for &: 'str' and 'bool'