使用 B 列作為參考如何替換 NaN 值
>>> a
A B
1 1
Nan 3
1 1
Nan 1
Nan 2
5 3
1 1
2 2
我想要這樣的結果。
>> result
A B
1 1
5 3
1 1
1 1
2 2
5 3
1 1
2 2
我嘗試在列上合并b但無法弄清楚
b=a.groupby('B').reset_index()
dfM = pd.merge(a,b,on='B', how ='left')
uj5u.com熱心網友回復:
我們需要從列B中的值到 中的值的映射A。
mapping = a.dropna().drop_duplicates().set_index("B")["A"]
看起來像這樣
B
1 1.0
3 5.0
2 2.0
Name: A, dtype: float64
此時填充空值變得無關緊要。我們可以只映射B以獲取列A
a["B"].map(mapping)
這給你
0 1.0
1 5.0
2 1.0
3 1.0
4 2.0
5 5.0
6 1.0
7 2.0
Name: B, dtype: float64
A如果需要,轉換為 int 并使用它覆寫原始資料框中的列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/333443.html
下一篇:有效地計算日期在兩列之間的記錄
