首页 > 解决方案 > 替换列中零百​​分比的零小于 50

问题描述

我正在尝试创建一个评估器。如果一列中零的百分比小于 50%,则用平均值替换零。

我尝试了所有我想不到的东西,但没有任何效果。

i = 0
if (1-((df1.iloc[:, i] == 0).astype(float).sum(axis=0)/df1.iloc[:, i].count())) > 0.5:    
    df1.iloc[:, i] = df1.iloc[:, i].mask(df1.iloc[:, i]==0).fillna(df1.iloc[:, i].mean())              
    i = i+1
else:
    i = i+1
def Zeros(i):
    if (1-((df1.iloc[:, i] == 0).astype(float).sum(axis=0)/df1.iloc[:, i].count())) > 0.5:    
        df1.iloc[:, i] = df1.iloc[:, i].mask(df1.iloc[:, i]==0).fillna(df1.iloc[:, i].mean())              
        i = i+1
    else:
        i = i+1
        return
Zeros(0)

标签: pythonpandasloops

解决方案


尝试这个:

i = 0
if df[i].value_counts()[0] / len(df) < 0.5:
    df.iloc[df['i'] == 0, i] = df[i].mean()

推荐阅读