如何计算每列的空值以及在 pandas 数据框中查找百分比?

swo*_*ord 3 python dataframe pandas

所以我有一个从 csv 文件读取的数据框并将其分配给“ski_data”。

我只是对指令的措辞有点困惑。它说:

计算(使用 .sum())ski_data 每列中缺失值 (.isnull()) 的数量以及百分比(使用 .mean() 而不是 .sum()),并使用 sort_values 对它们进行排序。

调用pd.concat以将这些内容呈现在单个表(DataFrame)中,并使用有用的列名称“count”和“%”

我执行此操作的唯一方法是将ski_data复制到新的df中,但现在的问题是我有一个新的数据框,在转置它之后,新的数据框将每列的名称作为索引以及与金额相对应的数字它具有的空值。另外,我不知道如何按照问题提出的方式计算平均值,因为它假设我可以将其全部写入一行。

我认为这主要是一个语法问题,尽管我在网上找不到任何有用的资源。想知道是否有人可以提供帮助。

Lau*_*ent 6

你可以试试这个:

import pandas as pd

# Toy dataframe
ski_data = pd.DataFrame(
    {
        "A": [1, 1, 1],
        "B": [2, 2, None],
        "C": ["markers", "", "markers"],
        "D": [None, 2, None],
        "E": [4, "", 4],
    }
)

counts = ski_data.isna().sum()
print(counts.sort_values())
# Outputs
A    0      
C    0      
E    0      
B    1      
D    2

percentages = round(ski_data.isna().mean() * 100, 1)
print(percentages.sort_values())
# Outputs
A     0.0     
C     0.0     
E     0.0     
B    33.3     
D    66.7

null_values = pd.concat([counts, percentages], axis=1, keys=["count", "%"])
print(null_values)
# Outputs
   count     %
A      0   0.0
B      1  33.3
C      0   0.0
D      2  66.7
E      0   0.0
Run Code Online (Sandbox Code Playgroud)