I need to copy the strings of event and paste them into three rows above and five rows down of a new column named epoch.
event epoch
NaN NaN
NaN NaN
NaN NaN
NaN 2_1
NaN 2_1
NaN 2_1
2_1 2_1
NaN 2_1
NaN 2_1
NaN 2_1
NaN 2_1
NaN 2_1
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN 3_1
NaN 3_1
NaN 3_1
3_1 3_1
NaN 3_1
NaN 3_1
NaN 3_1
NaN 3_1
NaN 3_1
NaN NaN
NaN NaN
NaN NaN
NaN NaN
Thank you.
CodePudding user response:
Try this: (considering column "epoch" doesn't exist yet)
df['epoch'] = df.event.ffill(limit=5)
df['epoch'] = df['epoch'].bfill(limit=3)
df
Output:
| index | event | epoch |
|---|---|---|
| 0 | NaN | NaN |
| 1 | NaN | NaN |
| 2 | NaN | NaN |
| 3 | NaN | 2_1 |
| 4 | NaN | 2_1 |
| 5 | NaN | 2_1 |
| 6 | 2_1 | 2_1 |
| 7 | NaN | 2_1 |
| 8 | NaN | 2_1 |
| 9 | NaN | 2_1 |
| 10 | NaN | 2_1 |
| 11 | NaN | 2_1 |
| 12 | NaN | NaN |
| 13 | NaN | NaN |
| 14 | NaN | NaN |
| 15 | NaN | NaN |
| 16 | NaN | NaN |
| 17 | NaN | 3_1 |
| 18 | NaN | 3_1 |
| 19 | NaN | 3_1 |
| 20 | 3_1 | 3_1 |
| 21 | NaN | 3_1 |
| 22 | NaN | 3_1 |
| 23 | NaN | 3_1 |
| 24 | NaN | 3_1 |
| 25 | NaN | 3_1 |
| 26 | NaN | NaN |
| 27 | NaN | NaN |
| 28 | NaN | NaN |
| 29 | NaN | NaN |
