根据空值的百分比删除pandas数据帧中的列

use*_*075 8 python pandas

我有一个大约60列和200万行的数据帧.有些列大多是空的.我使用此函数计算了每列中的空值百分比.

def missing_values_table(df): 
    mis_val = df.isnull().sum()
    mis_val_percent = 100 * df.isnull().sum()/len(df)
    mis_val_table = pd.concat([mis_val, mis_val_percent], axis=1)
    mis_val_table_ren_columns = mis_val_table.rename(
    columns = {0 : 'Missing Values', 1 : '% of Total Values'})
    return mis_val_table_ren_columns
Run Code Online (Sandbox Code Playgroud)

现在我想删除缺少80%以上(例如)值的列.我尝试了以下代码但它似乎没有工作.

df = df.drop(df.columns[df.apply(lambda col: col.isnull().sum()/len(df) > 0.80)], axis=1)
Run Code Online (Sandbox Code Playgroud)

先感谢您.希望我不会遗漏一些非常基本的东西

我收到此错误

TypeError :("'generator'对象不可调用",u'Ccurred在索引Unique_Key')

Vai*_*ali 20

您可以使用带有阈值参数的dropna()

thresh = len(df) * .2
df.dropna(thresh = thresh, axis = 1, inplace = True)
Run Code Online (Sandbox Code Playgroud)