早晨!
我想找到資料集每一行的最大值。
例子:
| ID | 年齡 | 可樂 | Col_B | Col_C |
|---|---|---|---|---|
| 1 | 20 | 1 | 5 | 3 |
| 2 | NaN | 6 | 8 | 9 |
| 3 | 25 | 5 | 6 | 7 |
| 4 | 30 | 3 | 4 | 6 |
| 5 | NaN | 6 | 2 | 1 |
| 6 | 27 | 1 | 8 | 4 |
然后,對于 ID #2 知道來自子集 [Col_A; Col_B; Col_C] 是來自 Col_C 的 9 我想輸入缺失值作為 ID 的平均年齡,它在 Col_C 中也具有最大值。
在這種情況下,ID #2 的年齡將是年齡 ID#3 和 ID#4 的平均值,即 28。
uj5u.com熱心網友回復:
您可以創建一個臨時列,顯示這是使用每個ID最大列idxmax,并執行它逐列,(axis=1)僅使用Col_列。
然后在新列上使用分組平均值來估算缺失的年齡,使用fillna 和groupby.transform:
df['max_col'] = df.filter(like='Col_').idxmax(axis=1)
df['Age_filled'] = round(df['Age'].fillna(df.groupby('max_col')['Age'].transform('mean')))
印刷:
ID Age Col_A Col_B Col_C max_col
0 1 20.0 1 5 3 Col_B
1 2 28.0 6 8 9 Col_C
2 3 25.0 5 6 7 Col_C
3 4 30.0 3 4 6 Col_C
4 5 NaN 6 2 1 Col_A
5 6 27.0 1 8 4 Col_B
對于ID = 5,沒有其他 ID 在 Col_A 中具有最大值。所以對于這樣的場合,還是留了np.nan
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/347914.html
