0

当您从 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 个单独的行返回。

4

1 回答 1

1

利用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
于 2021-11-11T09:07:11.917 回答