gpt4 book ai didi

python - pd.IndexSlice 的列表

转载 作者:行者123 更新时间:2023-12-04 08:15:30 24 4
gpt4 key购买 nike

输入 :

midx = pd.MultiIndex.from_product([['A0','A1'], ['B0','B1','B2','B3']])
columns = ['foo', 'bar']
t = pd.DataFrame(np.arange(16).reshape((len(midx), len(columns))),
index=midx, columns=columns)
输出:
In [6]: t
Out[6]:
foo bar
A0 B0 0 1
B1 2 3
B2 4 5
B3 6 7
A1 B0 8 9
B1 10 11
B2 12 13
B3 14 15
题:
v = pd.IndexSlice['A0','B0':'B1'] .我可以访问 t.loc[v,:] :
In [13]: t.loc[v,:]
Out[13]:
foo bar
A0 B0 0 1
B1 2 3
来自 [v,v] ,如何获得以下数据框?
In [13]: f([v,v])
Out[13]:
foo bar
A0 B0 0 1
B1 2 3
B0 0 1
B1 2 3
我无法指定这些多索引切片器的列表: t.loc[[v,v],:]将引发异常: Unashable type: 'slice' .为什么会这样?使用标量时,我可以轻松列出所需的位置: t.loc[[('A0','B0'),('A0','B1')],:] .

最佳答案

尝试:

t.loc[tuple(zip(v, v)),:]
它应该是 :
u = (['A0', 'A1'], [slice('B0', 'B1', None), slice('B0', 'B1', None)])
尝试以上述形式使用它。
t.loc[u,:]
        foo bar
A0 B0 0 1
B1 2 3
A1 B0 8 9
B1 10 11

关于python - pd.IndexSlice 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65723761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com