日内日高/日低

2024-06-01 12:54:27 发布

您现在位置:Python中文网/ 问答频道 /正文

让我有一个数据帧,日期时间索引如下:

date_time           open    high    low     close   vol
2018-05-13 18:00:00 70.54   70.60   70.42   70.55   2665
2018-05-13 18:15:00 70.55   70.59   70.53   70.58   378
2018-05-13 18:30:00 70.58   70.70   70.57   70.69   1470
2018-05-13 18:45:00 70.68   70.68   70.63   70.65   427
...
2018-05-14 00:00:00 70.46   70.47   70.40   70.41   1276
2018-05-14 00:15:00 70.41   70.45   70.38   70.39   1356
2018-05-14 00:30:00 70.39   70.48   70.39   70.46   1161
2018-05-14 00:45:00 70.46   70.47   70.43   70.46   359

我需要两个更多的列与每日高值和每日低值。 我试着做这个:

df['day_high']= x.resample('D').high.max()
df.day_high = x.day_high.fillna(method='ffill')

它在存在00:00:00数据时间的日子里工作得非常好。因此,14.05.2018我有一个datetime 00:00:00的值,我的代码可以工作。但是2018-05-13天从18:00开始,我的代码返回“NaN”值(我知道,为什么,但我不知道如何编写正确的代码)。你知道吗

你能帮我吗?谢谢。你知道吗


Tags: 数据代码dfclosedatetime时间open
1条回答
网友
1楼 · 发布于 2024-06-01 12:54:27

我认为需要^{}

df['day_high']= df.resample('D').high.transform('max')
df['day_low']= df.resample('D').low.transform('min')
print (df)
                      open   high    low  close   vol  day_high  day_low
date_time                                                               
2018-05-13 18:00:00  70.54  70.60  70.42  70.55  2665     70.70    70.42
2018-05-13 18:15:00  70.55  70.59  70.53  70.58   378     70.70    70.42
2018-05-13 18:30:00  70.58  70.70  70.57  70.69  1470     70.70    70.42
2018-05-13 18:45:00  70.68  70.68  70.63  70.65   427     70.70    70.42
2018-05-14 00:00:00  70.46  70.47  70.40  70.41  1276     70.48    70.38
2018-05-14 00:15:00  70.41  70.45  70.38  70.39  1356     70.48    70.38
2018-05-14 00:30:00  70.39  70.48  70.39  70.46  1161     70.48    70.38
2018-05-14 00:45:00  70.46  70.47  70.43  70.46   359     70.48    70.38

相关问题 更多 >