pandas - Pandas:按每个基本级别的最近日期过滤具有多索引的数据框
问题描述
我有一个具有以下格式的 pd.DataFrame:
dimension datekey ... tbvps workingcapital
ticker calendardate ...
A 2020-03-31 MRT 2020-04-30 ... 16.026 1.226000e+09
AAL 2020-03-31 MRT 2020-03-31 ... 123.058 -1.203800e+10
2020-06-30 MRT 2020-06-30 ... 138.105 -4.211000e+09
AAP 2020-03-31 MRT 2020-04-18 ... 150.120 1.740946e+09
2020-06-30 MRT 2020-07-11 ... 148.265 1.957966e+09
我只想选择每个股票带有最新日历日期的行,所以输出看起来像这样:
dimension datekey ... tbvps workingcapital
ticker calendardate ...
A 2020-03-31 MRT 2020-04-30 ... 16.026 1.226000e+09
AAL 2020-06-30 MRT 2020-06-30 ... 138.105 -4.211000e+09
AAP 2020-06-30 MRT 2020-07-11 ... 148.265 1.957966e+09
我知道如何通过遍历 level(0) 索引值并使用 df.loc[ticker].last('1D') 来做到这一点,但我正在寻找更快的东西。
解决方案
检查groupby
与tail
df = df.groupby(level=0).tail(1)
推荐阅读
- java - 带有 TabLayout 和 Viewpager 的 SearchBar。SearchBar (EditText) 不过滤用户,也不过滤事件
- python - chrome 和 firefox 的 Cookie 过期时间是否不同?
- c - 为什么我在第 29 行的 C 代码在它上面的三个 for 循环之前执行?
- javascript - 如何对齐条形图中的条形 - Chart.js
- javascript - 注册:TINYMCE - JS/Jquery 中的编辑器 HTML 数据绑定问题
- node.js - 如何从我的节点应用程序(在相同的 aws 上运行)在特定时间戳上调用 api 在 aws 中安排一个事件?
- javascript - 如何使用 gulp 4 调用其他任务?
- angular - 使用 angular-oauth2-oidc 进行 Angular 9 身份验证
- c++ - 相同的代码在不同的项目中有效/出错
- python-3.x - IndexError:使用嵌套循环时列表索引超出范围