获取每个国家缺失值的比例
Get proportion of missing values per Country
我想找出我的特征缺失值在每个国家和所有年份与 select 个国家的比例。
我试过这个:
df[indicators].isna().mean().sort_values(ascending=False)
但它只给出了每个指标缺失值的比例...
我想要这个输出:
您可以使用 DataFrame.melt
进行整形,然后汇总 mean
个缺失值:
df1 = (df.melt(id_vars='Country Name', value_vars=indicators)
.set_index('Country Name')['value'].isna()
.groupby('Country Name')
.mean()
.reset_index(name='Prop'))
或通过DataFrame.stack
重塑:
df1 = (df.set_index('Country Name')[indicators]
.stack(dropna=False)
.isna()
.groupby('Country Name')
.mean()
.reset_index(name='Prop')
)
或使用自定义函数:
df1 = (df.groupby('Country Name')[indicators]
.apply(lambda x: np.mean(x.isna().to_numpy(), axis=None))
.reset_index(name='Prop'))
我想找出我的特征缺失值在每个国家和所有年份与 select 个国家的比例。
我试过这个:
df[indicators].isna().mean().sort_values(ascending=False)
但它只给出了每个指标缺失值的比例...
我想要这个输出:
您可以使用 DataFrame.melt
进行整形,然后汇总 mean
个缺失值:
df1 = (df.melt(id_vars='Country Name', value_vars=indicators)
.set_index('Country Name')['value'].isna()
.groupby('Country Name')
.mean()
.reset_index(name='Prop'))
或通过DataFrame.stack
重塑:
df1 = (df.set_index('Country Name')[indicators]
.stack(dropna=False)
.isna()
.groupby('Country Name')
.mean()
.reset_index(name='Prop')
)
或使用自定义函数:
df1 = (df.groupby('Country Name')[indicators]
.apply(lambda x: np.mean(x.isna().to_numpy(), axis=None))
.reset_index(name='Prop'))