gpt4 book ai didi

python - Pandas :使用 .loc 和 MultiIndex 进行条件选择

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:28 24 4
gpt4 key购买 nike

我已阅读 Advanced indexing with hierarchical index 的文档其中解释了将 .loc 用于 MultiIndex 的地方。还有这个线程:Using .loc with a MultiIndex in pandas?

我仍然看不到如何选择 (first index == some value) or (second index == some value)

的行

例子:

import pandas as pd

index = pd.MultiIndex.from_arrays([['a', 'a', 'a', 'b', 'b', 'b'],
['a', 'b', 'c', 'a', 'b', 'c']],
names=['i0', 'i1'])
df = pd.DataFrame({'x': [1,2,3,4,5,6], 'y': [6,5,4,3,2,1]}, index=index)

这是DataFrame吗:

       x  y
i0 i1
a a 1 6
b 2 5
c 3 4
b a 4 3
b 5 2
c 6 1

如何获取 i0 == 'b' 或 i1 == 'b' 的行?

       x  y
i0 i1
a b 2 5
b a 4 3
b 5 2
c 6 1

最佳答案

我认为更简单的答案是使用 DataFrame.query允许您按名称查询多索引的函数,如下所示:

import pandas as pd
import numpy as np

index = pd.MultiIndex.from_arrays([list("aaabbb"),
list("abcabc")],
names=['i0', 'i1'])
df = pd.DataFrame({'x': [1, 2, 3, 4, 5, 6], 'y': [6, 5, 4, 3, 2, 1]}, index=index)


df.query('i0 == "b" | i1 == "b"')

返回:

       x  y
i0 i1
a b 2 5
b a 4 3
b 5 2
c 6 1

关于python - Pandas :使用 .loc 和 MultiIndex 进行条件选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51032985/

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