Home > OS >  Pandas: Copy a value of a row and paste it to multiple rows above in another column
Pandas: Copy a value of a row and paste it to multiple rows above in another column

Time:06-11

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
  • Related