给出以下数据框:
import pandas as pd
d = {'RAOPeriodOrFrequency': [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],
'RAOSurgeAmp': [28.57, 45.71, 83.49, 21.46 ,40.77, 101.26, 13.88, 31.26, 110.74, 0.01, 20.74, 100.54],
'RAOSwayAmp': [-4.10, -10.81 , 7.25, -2.07, 6.69, 33.90, -1.13, 26.29, 63.00, 15.39, 43.88, 85.54]}
df = pd.DataFrame(data=d)
df
RAOPeriodOrFrequency RAOSurgeAmp RAOSwayAmp
0 1 28.57 -4.10
1 2 45.71 -10.81
2 3 83.49 7.25
3 1 21.46 -2.07
4 2 40.77 6.69
5 3 101.26 33.90
6 1 13.88 -1.13
7 2 31.26 26.29
8 3 110.74 63.00
9 1 0.01 15.39
10 2 20.74 43.88
11 3 100.54 85.54
唯一需要注意的是,列0具有重复值,而其他列具有随机数。
我要插入新索引 OR 新列,以使最终数据框如下所示:
Out[5]:
Heading RAOPeriodOrFrequency RAOSurgeAmp RAOSwayAmp
0 0 1 28.57 -4.10
1 0 2 45.71 -10.81
2 0 3 83.49 7.25
3 15 1 21.46 -2.07
4 15 2 40.77 6.69
5 15 3 101.26 33.90
6 30 1 13.88 -1.13
7 30 2 31.26 26.29
8 30 3 110.74 63.00
9 45 1 0.01 15.39
10 45 2 20.74 43.88
11 45 3 100.54 85.54
新列的值包含在数组中,如下所示:
hd=np.array([0,15,30,45])
最有帮助的人。
谢谢!
答案 0 :(得分:4)
IIUC,您可以这样做:
service.run()
输出:
df['Heading'] = hd[df.RAOPeriodOrFrequency.diff().lt(0).cumsum()]