簡體   English   中英

根據列中的特定標簽向前填充熊貓數據框

[英]Forward fill in pandas dataframe based on specific label in a column

我需要向前感受特定標簽內的數據(其中在其他列中定義的標簽:

LABEL | Col1 | ffil_col |
-------------------------
    1 |  N   | female   |
    1 |  M   |          |
    2 |  A   |          |
    2 |  N   | male     |
    2 |  M   |          |

需要這樣的:

LABEL | Col1 | ffil_col |
-------------------------
    1 |  N   | female   |
    1 |  M   | female   |
    2 |  A   |          |
    2 |  N   | male     |
    2 |  M   | male     |

到目前為止,我唯一的想法是按標簽使用groupby ,然后ffill每個組,然后再將所有內容ffill 是否有其他更明確的解決方案?

您可以在groupby上使用transform ,它的長度與原始數據幀的長度相同。

df['ffil_col'] = df.groupby('LABEL').ffil_col.transform(lambda group: group.ffill())

>>> df
   LABEL Col1 ffil_col
0      1    N   female
1      1    M   female
2      2    A      NaN
3      2    N     male
4      2    M     male

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM