我想知道价格在什么时候低点和高点。
数据看起来像这样
Last Timestampvalue
2 3071.56 1547986549
3 3097.82 1547986666
4 3097.82 1547986675
5 3095.25 1547986737
6 3087.42 1547986798
7 3095.29 1547986854
8 3095.25 1547986918
9 3093.11 1547986975
10 3103 1547987034
11 3095 1547987096
12 3100.6 1547987157
13 3099.84 1547987218
14 3098.77 1547987277
15 3097.24 1547987340
16 3090 1547987397
17 3090 1547987457
预期
Last Timestampvalue pct_Max
2 3071.56 1547986549
3 3097.82 1547986666
4 3097.82 1547986675
5 3095.25 1547986737
6 3087.42 1547986798
7 3095.29 1547986854
8 3095.25 1547986918
9 3093.11 1547986975
10 3103 1547987034
11 3095 1547987096
12 3100.6 1547987157
13 3099.84 1547987218
14 3098.77 1547987277
15 3097.24 1547987340
16 3090 1547987397
17 3090 1547987457 0.5341
18 3098 1547987519 0.5
我期望的逻辑如下,
(1547987034-1547986549)/(1547987457-1547986549)= 0.5341 (1547987034-1547986549)/(1547987519-1547986549)= 0.5
这是最大值(3103)发生在10行,这里的时间戳是1547987034,然后我将其与第2行的时间戳相减(1547986549),然后将其除以在第17行出现的第15分钟时间戳,因此该时间戳这是1547987457,并在第2行的时间戳中减去它。
我知道可以在excel中进行计算,但是在熊猫中,我试图找出哪个值在15分钟时是最大值,并且不确定如何获取其时间戳,而且还需要进行类型拆分。
for v in df['Type'].unique():
mask = df['Type'].eq(v)
df.loc[mask, f'Prev15minMax_{v}'] = (df.loc[mask,'Last']
.rolling('15min',min_periods=15)
.max())
类型列看起来像this
答案 0 :(得分:0)
这是您进行计算的元素(细分):
ControlType
这是进入指定列的一种方法:
max_Last = df1.loc[df1['Last'] == df1['Last'].max(),'Timestampvalue']
max_ts = df1['Timestampvalue'].max()
min_ts = df1['Timestampvalue'].min()
cpt = (max_Last - min_ts) / (max_ts - min_ts)