来自 yfinance 的最后实时蜡烛图

Last real-time candle from yfinance

当您从 yfinance 实时下载数据并且同时下载多个代码时,您经常会得到最后一个数据示例分成几行。

                                 Open         Volume      
                               BARC.L   BKG.L BARC.L BKG.L
Datetime                                                  
2021-11-11 08:05:19+00:00         NaN  4326.0    NaN   0.0
2021-11-11 08:07:10+00:00  194.539993     NaN    0.0   NaN

我不关心这些微小的时间差异,我只想要最后一行中每只股票的最后一个例子。

我一直在考虑对最后的示例进行分组,但我不确定如何。

请注意,我一次下载的股票数量可能会更多,可能是 10 个,这意味着它们可能会在 10 个单独的行中返回。

使用ffill

>>> df.ffill().iloc[[-1]]
                                 Open          Volume
                               BARC.L   BKG.L  BARC.L  BKG.L
Datetime                                                        
2021-11-11 08:07:10+00:00  194.539993  4326.0     0.0    0.0

进一步:

>>> df.ffill(0).iloc[[-1]].stack(level=1) \
      .reset_index().rename(columns={'level_1': 'Stock'})

                   Datetime   Stock         Open  Volume
0 2021-11-11 08:07:10+00:00  BARC.L   194.539993     0.0
1 2021-11-11 08:07:10+00:00   BKG.L  4326.000000     0.0