我编写了此代码段,以找出每列包含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)
请帮忙!
答案 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)