Here is sample dataframe look like:
>>> df
point x y
0 0.1 NaN NaN
1 0.2 NaN NaN
2 0.3 5.0 NaN
3 0.4 NaN NaN
4 0.5 NaN 1.0
5 0.6 NaN NaN
6 0.7 1.0 1.0
7 0.8 NaN NaN
8 0.9 NaN NaN
9 1.1 NaN NaN
10 1.2 NaN NaN
11 1.3 NaN NaN
12 1.4 NaN 2.0
13 1.5 NaN NaN
14 1.6 NaN NaN
15 1.7 NaN NaN
16 0.1 NaN NaN
17 0.2 NaN NaN
18 0.3 NaN NaN
19 0.4 NaN NaN
20 0.5 NaN NaN
21 0.6 2.0 NaN
22 0.7 NaN NaN
23 1.1 NaN NaN
From this dataFrame I want to update point value. Condition is when x or y is not NaN immediate next value of point will be replaced by previous point value afterthat next point value should be reindexed(cycle .1 to .6). eg. in row index(2) when point=0.3, x=5.0 So, the next point value should be also 0.3 instead of 0.4, Then in row index(4) point=0.5 will be replaced by 0.4(continue recursively)
OUTPUT I want:
point x y
0 0.1 NaN NaN
1 0.2 NaN NaN
2 0.3 5.0 NaN
3 0.3 NaN NaN
4 0.4 NaN 1.0
5 0.4 NaN NaN
6 0.5 1.0 1.0
7 0.5 NaN NaN
8 0.6 NaN NaN
9 1.1 NaN NaN
10 1.2 NaN NaN
11 1.3 NaN NaN
12 1.4 NaN 2.0
13 1.4 NaN NaN
14 1.5 NaN NaN
15 1.6 NaN NaN
16 0.1 NaN NaN
17 0.2 NaN NaN
18 0.3 NaN NaN
19 0.4 NaN NaN
20 0.5 NaN NaN
21 0.6 2.0 NaN
22 0.6 NaN NaN
23 1.1 NaN NaN
Code I tried:
import pandas as pd
df = pd.read_csv("data.csv")
df['point'] = df.groupby() #Don't know how should I approach
0.1-0.6,1.1-1.6,2.1-2.6and so on. In between.1-.6cycle any value might appear several times consecutively but index should be followed like 0.1 0.1 0.2 0.3 0.4 0.4 0.5 0.5 0.6 1.1 ...