我们有一个 MultiIndex DataFrame,其中顶级索引使用整数值。对特定值进行切片会返回直到请求值为止的所有索引值,而不仅仅是请求值。这是一个错误,还是我们做错了?
示例:
import numpy as np
import pandas as pd
midx = pd.MultiIndex.from_product([[1,2], ['A', 'B']])
df = pd.DataFrame(np.arange(4).reshape((len(midx), 1)), index=midx, columns=['Values'])
df.loc[(slice(1), slice(None)), :] # Slice for only top index value=1
第一个切片仅返回索引值 = 1,如预期:
Values
1 A 0
1 B 1
但是:
df.loc[(slice(2), slice(None)), :] # Slice for only top index value=2
返回索引值 1 和值 2,如下所示:
Values
1 A 0
1 B 1
2 A 2
2 B 3
我们期望的是:
Values
2 A 2
2 B 3