熊猫 - 根据另一个值的先前值填充NaN

2024-04-26 05:36:39 发布

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

我在一个数据帧中有一些股票数据,我正在重新采样,这会产生一些NaN值。以下是原始提要的一部分:

In [34]: feeddf
Out[34]:
                      open   high    low  close  volume
date
2017-12-03 07:00:00  14.46  14.46  14.46  14.46   25000
2017-12-03 07:01:00  14.46  14.46  14.46  14.46   20917
2017-12-03 07:06:00  14.50  14.50  14.50  14.50    2000
2017-12-03 07:12:00  14.50  14.56  14.50  14.56   17000

提要应该是一分钟一分钟的,但是当没有可用的数据时,会跳过该行。重新采样数据帧并聚合开盘、高点、低点和收盘点时,如下所示:

^{pr2}$

我的问题:我想根据最后一行的close值向前填充缺失的数据。df.fillna(method='ffill')没有帮助,因为它根据同一列的最后一个值填充它。有什么想法吗?在


Tags: 数据inclosedateopennanoutlow
1条回答
网友
1楼 · 发布于 2024-04-26 05:36:39

首先向前填充最后一列close,然后按列bfill

print (df)
                      open   high    low  close
date                                           
2017-12-03 07:00:00  14.46  14.46  14.46  14.81
2017-12-03 07:03:00    NaN    NaN    NaN    NaN
2017-12-03 07:06:00  14.50  14.50  14.50  14.59
2017-12-03 07:09:00    NaN    NaN    NaN    NaN
2017-12-03 07:12:00  14.50  14.56  14.50  14.56


df['close'] = df['close'].ffill()
df = df.bfill(axis=1)
print (df)
                      open   high    low  close
date                                           
2017-12-03 07:00:00  14.46  14.46  14.46  14.81
2017-12-03 07:03:00  14.81  14.81  14.81  14.81
2017-12-03 07:06:00  14.50  14.50  14.50  14.59
2017-12-03 07:09:00  14.59  14.59  14.59  14.59
2017-12-03 07:12:00  14.50  14.56  14.50  14.56

相关问题 更多 >