如何按列查找“空”值的百分比

时间:2018-09-07 07:01:18

标签: python pandas

我编写了此代码段,以找出每列包含empty值的百分比。

当我对一列进行操作时,它起作用是这样的,其中DESCRIPTION是活动中的列。

for ind, column in enumerate(df.columns[0:]):
    tmp = df.columns[ind]
    print(ind, df.columns[ind], ((df[df['DESCRIPTION'] == 'empty'].shape[0])/(df.shape[0]))*100)

当我尝试为所有列枚举相同的内容时,它不起作用。我已经声明@tmp为用于列名的变量。

for ind, column in enumerate(df.columns[0:]):
    tmp = df.columns[ind]
    print(ind, df.columns[ind], ((df[df[@tmp] == 'empty'].shape[0])/(df.shape[0]))*100)

请帮忙!

2 个答案:

答案 0 :(得分:2)

最简单:

import pandas as pd
df=pd.DataFrame({'a':[1,2,'empty'],'b':['empty','empty',3]})
print(('%d'%(([x for i in df.values.tolist() for x in i].count('empty')/len([x for i in df.values.tolist() for x in i]))*100))+'%')

输出:

50%

答案 1 :(得分:1)

for col in df.columns.tolist():
    print(col, df[col], df[col][df[col] == 'empty'].shape[0] / df[col].shape[0]*100)