[英]Replace certain values in pandas dataframe with mode of that row
我有一個像這樣的 DataFrame:
ColA ColB ColC ColD ColE
Male 1 0 ? 1
Female 1 1 ? 1
Male 0 0 0 1
Female 1 0 0 ?
Female 1 1 1 ?
它有幾個?
始終。 我想用模式(每行的最常見值)替換這些 - 不包括第一列。
我做了這樣的事情,但沒有返回我想要的:
df.replace("?", np.nan, inplace = True)
df_new = df.apply(lambda row: row.fillna(row[1:].mode()), axis = 1)
對於fillna
我們只能用帶有系列的column
來填充,所以我們需要T
,對於我們可以在apply
之外執行的mode
df_new = df.T.fillna(df.iloc[:,1:].astype(float).mode(axis=1)[0]).T
df_new
ColA ColB ColC ColD ColE
0 Male 1 0 1.0 1
1 Female 1 1 1.0 1
2 Male 0 0 0 1
3 Female 1 0 0 0.0
4 Female 1 1 1 1.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.