我需要转发特定标签内的数据(其他栏中定义的标签:
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
,
然后把所有东西都拿回来。有没有替代方案和更明确的解决方案?
答案 0 :(得分:2)
您可以在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