Pandas DataFrame重采样:如何用先前的“关闭”值填充nan?

时间:2019-02-10 21:54:46

标签: pandas dataframe nan

我正在从交易时间序列的数据框中创建重新采样的分钟数据,并获得“打开”,“低”,“高”,“关闭”列。

dfOHLCV = pd.DataFrame()
dfOHLCV = df.price.resample('T').ohlc()

我的问题在于填写“ nan”。如果在给定的分钟间隔内没有交易,则该值变为“ nan”。 可以通过申请来填补Nans

.fillna(method='ffill') # which replaces nan by the value in the previous period

但是,nan单元格中的开盘价不应从其前期的开盘价中得出,而应从其闭口单元中得出。

示例:

index | open | high | low | close
00001 | 3200 | 3250 | 3190| 3240
00002 | nan  | nan  | nan | nan

.fillna将填充

00002 | 3200 | 3250 | 3190| 3240

但是我想这样填写:

00002 | 3240 | 3240 | 3240| 3240

换句话说,我想用上期的收盘价来填充nan单元。该怎么办?

1 个答案:

答案 0 :(得分:0)

通过fillnadict进行检查

df=df.fillna(dict.fromkeys(df.columns.tolist(),df.close.ffill()))
df
         open    high     low   close
index                                
1      3200.0  3250.0  3190.0  3240.0
2      3240.0  3240.0  3240.0  3240.0