当时我尝试了 group ffill,但没有任何效果。 :(
如何基于名为“Rec”的空白列使用填充。因此,如果此列为空,则在“Rec”列上填充先前的值,然后将“Loc1”和 Loc 也替换为先前的值?
这是我的 df:
+--------+----------+----------------------------+---------+------------+
| Lot | Rec | Part | Loc1 | Loc |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | | PHEMT6_BGATE_70NM_EBEAM.05 | B_PC | B_PC_STOCK |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+------------+
| Y19105 | | PHEMT6_BGATE_70NM_EBEAM.05 | B_PC | B_PC_STOCK |
+--------+----------+----------------------------+---------+------------+
| Y19105 | | PHEMT6_BGATE_70NM_EBEAM.05 | B_PC | B_PC_STOCK |
+--------+----------+----------------------------+---------+------------+
| Y19105 | | PHEMT6_BGATE_70NM_EBEAM.05 | B_PC | B_PC_STOCK |
+--------+----------+----------------------------+---------+------------+
我想要的输出:
+--------+----------+----------------------------+---------+-----------+
| Lot | Rec | Part | Loc1 | Loc |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
| Y19105 | BIPA6.02 | PHEMT6_BGATE_70NM_EBEAM.05 | B_EBEAM | B_F_EBEAM |
+--------+----------+----------------------------+---------+-----------+
非常感谢您的帮助!
答案 0 :(得分:1)
IIUC 如果 Loc1
列是 Loc
,您可以尝试将 NaN
和 Rec
值更改为 NaN
,然后使用 ffill
在整个 DataFrame 上。
试试这个:
df.loc[df['Rec'].isnull(), ['Loc1', 'Loc']] = np.nan
df.ffill()