Python 如何计算数据帧中空值的百分比?

Python 如何计算数据帧中空值的百分比?,python,pandas,Python,Pandas,我有一个数据框df,从中我知道有空值,即'''(空格)。 我想计算这些观察值的每列百分比,并将其替换为NaN 要获得我尝试过的百分比: for col in df: empty = round((df[df[col]] == '').sum()/df.shape[0]*100, 1) 我有一个类似的代码来计算零,它确实有效: zeros = round((df[col] == 0).sum()/df.shape[0]*100, 1) 我认为您需要测试缺少的值(但不是空白): 解决方案应

我有一个数据框
df
,从中我知道有空值,即'''(空格)。 我想计算这些观察值的每列百分比,并将其替换为
NaN

要获得我尝试过的百分比:

for col in df:
   empty = round((df[df[col]] == '').sum()/df.shape[0]*100, 1)
我有一个类似的代码来计算零,它确实有效:

zeros = round((df[col] == 0).sum()/df.shape[0]*100, 1)
我认为您需要测试缺少的值(但不是空白):

解决方案应简化为
平均值

nans = round(df[col].isna().mean()*100, 1)
要替换空空格或空格以
NaN
s,请使用:

df = df.replace(r'^\s*$', np.nan, regex=True)

nans = round(df[col].isna().mean()*100, 1)
如果需要测试所有列:

nans = df.isna().mean().mul(100).round()
我认为您需要测试缺少的值(但不是空白):

解决方案应简化为
平均值

nans = round(df[col].isna().mean()*100, 1)
要替换空空格或空格以
NaN
s,请使用:

df = df.replace(r'^\s*$', np.nan, regex=True)

nans = round(df[col].isna().mean()*100, 1)
如果需要测试所有列:

nans = df.isna().mean().mul(100).round()

您的问题的完整答案将是:

for col in df:
    empty_avg = round(df[col].isna().mean()*100, 1) # This line is to find the average of empty values.

df = df[df != ''] # This will replace all the empty values with NaN.

您的问题的完整答案将是:

for col in df:
    empty_avg = round(df[col].isna().mean()*100, 1) # This line is to find the average of empty values.

df = df[df != ''] # This will replace all the empty values with NaN.

这是否可以解释错误编码的值,即缺少值但没有用NaN编码,而是用“”(空白)编码的值?@LeLuc-因此缺少的值不是空白,这是不同的。但是否有可能将其替换为缺失值,请给我一些时间。这是否可以解释错误编码的值,即缺失值但未使用NaN编码,而是使用“”(空格)?@LeLuc-因此缺失值不是空格,而是不同的。但如果有可能将它们替换为缺失的值,请给我一些时间。