【发布时间】:2022-06-20 06:47:44
【问题描述】:
我有一个带有多级行索引的 pandas DataFrame:
operators license
sum sum
City Year
-----------------------------------
New York 2020 44 A2
Chicago 2020 30 A2
Boston 2020 33 A1
New York 2021 48 A2
Chicago 2021 30 A2
Boston 2021 41 A1
我可以通过仅指定行索引的级别 0 来选择带有 .loc 的行:
df.loc[("Boston", )]
但是如何在不指定级别 0 的情况下选择级别 1 为 2020 的所有行?
经过一番搜索,我发现query 给出了我正在寻找的确切结果:
df.query("Year == 2020")
现在我想知道如何使用.loc 来实现这一点?
【问题讨论】:
-
df.loc(axis=0)[:, 2020] -
谢谢!现在我有点疑惑为什么 loc 在我查询级别 0 时不需要轴...
-
我认为另一个选择是
df.loc[[:, '2020'], :]。我认为对于 0 级,不要求轴只是方便(假设)
标签: pandas select multi-index pandas-loc