我試著使用groupby(client_id或client _ name)替換列特征計數(shù)中的NaN值(其整數(shù)范圍為1到10),但是NaN值似乎沒有變化。df['feature_count'].isnull().sum()輸出為:2254現(xiàn)在我使用:df['feature_count'].fillna(df.groupby('client_name')['feature_count'].mean(), inplace=True)但是輸出保持不變:df['feature_count'].isnull().sum()2254還有其他方法可以通過按其ID分組的列的其他非NaN值來替換NaN值?
1 回答

婷婷同學(xué)_
TA貢獻(xiàn)1844條經(jīng)驗 獲得超8個贊
df.groupby('client_name')['feature_count'].mean() 返回一個序列。
但是,您并不想將null值替換為series。相反,您想將空值替換為從series映射的均值。
因此,您可以使用以下內(nèi)容:
s = df.groupby('client_name')['feature_count'].mean()
df['feature_count'].fillna(df['client_name'].map(s), inplace=True)
更可惡的將是利用pd.DataFrame.transform,它可以為您處理映射部分:
s = df.groupby('client_name')['feature_count'].transform('mean')
df['feature_count'].fillna(s, inplace=True)
添加回答
舉報
0/150
提交
取消