选择多索引数据帧的最新示例

我有一个和Getting the last element of a level in a multiindex类似的问题。在前面提到的问题中,多索引数据帧对于每个组都有一个始终相同的起始号。

然而,我的问题略有不同。我又有两列。一列包含整数(在下面的MWE中为bool),另一列包含datetime索引。与上面的示例类似,我希望为第一列最后一行中的每个唯一值执行select。在我的示例中,它指的是具有最近时间戳的值。上面问题的解决方案不起作用,因为我没有第二列的固定起始值。

MWE:

import pandas as pd

df = pd.DataFrame(range(10), index=pd.date_range(pd.Timestamp("2020.01.01"), pd.Timestamp("2020.01.01") + pd.Timedelta(hours=50), 10))
mask = (df.index.hour > 1) & (df.index.hour < 9)
df.groupby(mask)
df = df.groupby(mask).rolling("4h").mean()

生成的数据帧如下所示:

                             0
False 2020-01-01 00:00:00  0.0
      2020-01-01 11:06:40  2.0
      2020-01-01 16:40:00  3.0
      2020-01-01 22:13:20  4.0
      2020-01-02 09:20:00  6.0
      2020-01-02 14:53:20  7.0
      2020-01-02 20:26:40  8.0
True  2020-01-01 05:33:20  1.0
      2020-01-02 03:46:40  5.0
      2020-01-03 02:00:00  9.0

现在,我想为第一列中的每个值获取具有最近时间戳的行。也就是说,我想要获取以下数据帧:

                             0
False 2020-01-02 20:26:40  8.0
True  2020-01-03 02:00:00  9.0

我真的很感激像在提到的链接中这样做的想法。

转载请注明出处:http://www.tzjx69597577.net/article/20230526/2613534.html