gpt4 book ai didi

python - 从具有复合(分层)索引的 Pandas 数据框中选择行

转载 作者:IT老高 更新时间:2023-10-28 21:54:41 40 4
gpt4 key购买 nike

我怀疑这是微不足道的,但我还没有发现可以让我根据分层键的值从 Pandas 数据框中选择行的咒语。因此,例如,假设我们有以下数据框:

import pandas
df = pandas.DataFrame({'group1': ['a','a','a','b','b','b'],
'group2': ['c','c','d','d','d','e'],
'value1': [1.1,2,3,4,5,6],
'value2': [7.1,8,9,10,11,12]
})
df = df.set_index(['group1', 'group2'])

df 看起来和我们预期的一样:

enter image description here

如果 df 没有在 group1 上被索引,我可以执行以下操作:

df['group1' == 'a']

但是在这个带有索引的数据帧上失败了。所以也许我应该把它想象成一个带有层次索引的 Pandas 系列:

df['a','c']

不。那也失败了。

那么我如何选择所有行:

  1. group1 == 'a'
  2. group1 == 'a' & group2 == 'c'
  3. group2 == 'c'
  4. ['a','b','c'] 中的组 1

最佳答案

尝试使用 xs 非常精确:

In [5]: df.xs('a', level=0)
Out[5]:
value1 value2
group2
c 1.1 7.1
c 2.0 8.0
d 3.0 9.0

In [6]: df.xs('c', level='group2')
Out[6]:
value1 value2
group1
a 1.1 7.1
a 2.0 8.0

关于python - 从具有复合(分层)索引的 Pandas 数据框中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11941492/

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