Reputation: 189
I tried group by then ffill and nothing has worked. :(
How do I use ffill based on a blank column called "Rec". So if this column is blank, then fill the previous value on the "Rec" column and then replace "Loc1" and Loc with previous value as well?
Here is my 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 |
+--------+----------+----------------------------+---------+------------+
The output I want:
+--------+----------+----------------------------+---------+-----------+
| 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 |
+--------+----------+----------------------------+---------+-----------+
Your help is very much appreciated!
Upvotes: 1
Views: 431
Reputation: 71570
IIUC you could try changing the Loc1
and Loc
values to NaN
if the Rec
column is NaN
, and then use ffill
on the whole DataFrame.
Try this:
df.loc[df['Rec'].isnull(), ['Loc1', 'Loc']] = np.nan
df.ffill()
Upvotes: 1