import pandas as pd
import numpy as np
nan = np.NaN
data = [['a1',0,'Bottom_Class'],
['a1',0,nan],
['a1',1,nan],
['a1',1,nan],
['a1',1,nan],
['a1',1,'Top_Class'],
['a1',0,'Bottom_Class'],
['a1',0,'Top_Class'],
['a2',1,nan],
['a2',1,nan],
['a2',1,'Bottom_Class'],
['a2',0,nan],
['a2',0,'Bottom_Class'],
['a1',0,'Top_Class'],
['a2',1,nan],
['a1',1,'Top_Class'],
['a2',1,nan],
['a2',1,nan],
['a2',1,nan],
['a2',0,'Bottom_Class']]
df = pd.DataFrame(data,columns=['Id','State','Class'])
print(df)
Id State Class
0 a1 0 Bottom_Class
1 a1 0 NaN
2 a1 1 NaN
3 a1 1 NaN
4 a1 1 NaN
5 a1 1 Top_Class
6 a1 0 Bottom_Class
7 a1 0 Top_Class
8 a2 1 NaN
9 a2 1 NaN
10 a2 1 Bottom_Class
11 a2 0 NaN
12 a2 0 Bottom_Class
13 a1 0 Top_Class
14 a2 1 NaN
15 a1 1 Top_Class
16 a2 1 NaN
17 a2 1 NaN
18 a2 1 NaN
19 a2 0 Bottom_Class
Итак, это данные некоторых цен на фондовом рынке, но я изменяю их так, чтобы их было легче понять.
Просто чтобы сосредоточиться на df.Class:
Я думаю, чтоустановите: Bottom_Class в качестве начальной точки и Top_Class в качестве конечной точки.И наоборот.
И значение после (не включая себя) Top_Class будет установлено на 0 , пока не встретится Bottom_Class
и значение после (не включая себя) Bottom_Classбудет установлен на 1 , пока не встретится с Top_Class.
Я хочу изменить серию следующим образом:
Class
Bottom_Class
1
1
1
1
Top_Class
Bottom_Class
Top_Class
0
0
Bottom_Class
1
Bottom_Class
Top_Class
0
Top_Class
0
0
0
Bottom_Class