Ich versuche Nullwerte mit einem Offset zu imputieren, der dem Durchschnitt der Zeile df [row, 'avg'] und dem Durchschnitt der Spalte ('imput [col]') entspricht. Gibt es eine Möglichkeit, dies zu tun, damit die Methode mit .map parallelisiert wird? Oder gibt es eine bessere Möglichkeit, die Indizes mit Nullwerten zu durchlaufen? Python Pandas Imputation von Nullwerten
test = pd.DataFrame({'a':[None,2,3,1], 'b':[2,np.nan,4,2],
'c':[3,4,np.nan,3], 'avg':[2.5,3,3.5,2]});
df = df[['a', 'b', 'c', 'avg']];
impute = dict({'a':2, 'b':3.33, 'c':6 })
def smarterImpute(df, impute):
df2 = df
for col in df.columns[:-1]:
for row in test.index:
if pd.isnull(df.loc[row,col]):
df2.loc[row, col] = impute[col]
+ (df.loc[:,'avg'].mean() - df.loc[row,'avg'])
return print(df2)
smarterImpute(test, impute)
Das hat funktioniert! Danke, ich war mir der .combine_first Methode nicht bewusst. – MyopicVisage