![](/img/trans.png)
[英]how to fill NaN values of Pandas column with values from another column
[英]Pandas - fill NaN with string from another column
我有 2 列(“姓氏”和“郵政編碼”)。 dataframe 已過濾為僅包含重復的姓氏:
Surname | PostCode
Adams | NaN
Adams | NaN
Bryan | NX203
Bryan | NaN
Cormack | NaN
Cormack | NaN
Cormack | NZ233
Dylan | NaN
Dylan | NaN
Dylan | NaN
其中一些根本沒有郵政編碼。 然而,對於那些有的人,我想用現有的任何東西來填補缺失的部分。 例如,包含“Bryan”的第二行應填充 NX203(就像上面的行一樣)。 類似地,其他兩個 Cormack 實例應填充 NZ233。
我不知道從哪里開始。 我假設它必須是應用於每一行的 python function 但不確定如何開始/做什么。
讓我們試試groupby().transform()
:
df['PostCode'] = df.groupby('Surname').PostCode.transform('first')
Output:
Surname PostCode
0 Adams NaN
1 Adams NaN
2 Bryan NX203
3 Bryan NX203
4 Cormack NZ233
5 Cormack NZ233
6 Cormack NZ233
7 Dylan NaN
8 Dylan NaN
9 Dylan NaN
另一種方式, groupby(), ffill
再bfill
df['PostCode'] =df.groupby('Surname').PostCode.apply(lambda x:x.ffill().bfill())
Surname PostCode
0 Adams NaN
1 Adams NaN
2 Bryan NX203
3 Bryan NX203
4 Cormack NZ233
5 Cormack NZ233
6 Cormack NZ233
7 Dylan NaN
8 Dylan NaN
9 Dylan NaN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.