【问题标题】:In Python, how to view the percentage of missing values per each column?在 Python 中,如何查看每列缺失值的百分比?
【发布时间】:2020-07-20 23:26:34
【问题描述】:

我是一名新的数据科学家,我正在尝试编写一个代码来计算数据框中每列的缺失值百分比。

这是一个可重现的代码:

my_df = pd.DataFrame([[None, 2, 3],
                     [4, None, 6],
                     [7, 8, None]])

在此代码中,每列包含 33.3% 的缺失值。我为尝试解决自己的问题而开发的代码如下:

my_df.isnull().sum() / my_df.count()

此代码输出每列缺失值的百分比为 0.5,因为正如我通过开发此代码了解到的那样,函数 count() 不考虑缺失值并且仅计算非空值。

我怎样才能克服这个问题并得到这个问题的正确答案,即每列缺失值的百分比是 0.33,而不是 0.5?

谢谢!

【问题讨论】:

  • 计算索引并乘以列数
  • 按列百分比:my_df.isnull().sum() / len(my_df)。对于总数据框:my_df.isnull().sum().sum() / (len(my_df) * len(my_df.columns)).
  • 感谢您的双向分享!

标签: python dataframe missing-data


【解决方案1】:

试一试:

my_df.isnull().sum()/len(my_df)

【讨论】:

  • 感谢您的解决方案!
【解决方案2】:

您面前有它——假设您想使用现有代码作为起点。 count 省略了空值,但您将它们计入分子中。只需将该值添加到分母:

my_df.isnull().sum() / ( my_df.count() + my_df.isnull().sum() )

优化应该导致生成的代码缓存sum结果,只进行一个调用链。

更好的是,使用len 来获取分母;生成的代码更容易阅读。

【讨论】:

  • 感谢您提供此解决方案并解释这两种方法。感谢您的帮助!
猜你喜欢
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 2018-12-06
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2021-11-05
相关资源
最近更新 更多