pandas 切片多索引 Dataframe

wfauudbj  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(186)

我有一个“pandas.MultiIndex.from_product“ Dataframe ,我想从其中分割一些数据。对于这些切片,我知道(多)索引。
已知的索引不一定存在于 Dataframe 中,对于起始索引(b1),它可能较低,对于结束索引(b2),它可能较高,参见代码slice1
这是我的问题的一个最小的例子。

import pandas as pd

ind = pd.MultiIndex.from_product([range(3), range(3)], names=["a", "b"])
df = pd.DataFrame(range(0,9999,1111), columns=["values"], index=ind)

idx = pd.IndexSlice

slice1 = df.loc[idx[0:1, 1:3],:]
slice2 = df.loc[idx[0:2, 1:0],:]

在图片中,您可以看到 Dataframe dfslice1和预期的slice2。只要b1〈b2,我的代码就可以正常工作,但当b1〉b2时,如slice2中所示,它将返回一个空 Dataframe 。
第一次
有没有办法让这个工作?顺便说一句,我看到这个职位在这里:Select rows in pandas MultiIndex DataFrame,但我不认为它回答了这个问题。

xtfmy6hx

xtfmy6hx1#

回答我自己的问题。我试过太复杂的方法,这就是答案:

slice2 = df.loc[(0,1):(2,0),:]
dluptydi

dluptydi2#

更短:

slice2 = df[(0,1):(2,0)]

相关问题