gpt4 book ai didi

python - 使用 Pandas 进行多重索引切片

转载 作者:行者123 更新时间:2023-11-30 22:13:16 24 4
gpt4 key购买 nike

我尝试同时在两个轴上使用多重索引进行切片,但出现异常:

multi_index_0 = pd.MultiIndex.from_product([['A', 'B', 'C'], ['a' , 'b']], names=['first', 'second'])
multi_index_1 = pd.MultiIndex.from_product([['D', 'E'], ['c' , 'd']], names=['first', 'second'])
df = pd.DataFrame(np.random.randn(6, 4), multi_index_0, multi_index_1)

现在,我想对行 ['A', 'b] 和 ['B', 'a'] 以及列 ['D', 'c'] 和 ['E', 'd'] 进行切片.

我尝试了以下方法,但没有成功:

df.loc[['A', 'b'], ['B', 'a']], [['D', 'c'], ['E', 'd']]

返回空数据帧

df.loc[['A', 'B'], ['b', 'a']], [['D', 'E'], ['c', 'd']]

返回空数据框

df.loc[([['A', 'B'], ['b', 'a']]), ([['D', 'E'], ['c', 'd']])]

TypeError: '['A', 'B']' is an invalid key

df.loc[([['A', 'b'], ['B', 'a']]), ([['D', 'c'], ['E', 'd']])]

TypeError: '['A', 'b']' is an invalid key

最佳答案

使用Index.isin对于 bool 掩码,然后通过 loc 选择:

m1 = df.index.isin((['A', 'b'], ['B', 'a']))
m2 = df.columns.isin((['D', 'c'], ['E', 'd']))

df = df.loc[m1, m2]
print (df)
first D E
second c d
first second
A b -0.915119 -0.038221
B a -1.224615 -0.873551

关于python - 使用 Pandas 进行多重索引切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50833119/

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