gpt4 book ai didi

python - 获取多个DataFrame横截面

转载 作者:行者123 更新时间:2023-11-30 23:26:14 25 4
gpt4 key购买 nike

假设我有一个多索引数据帧:

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B' : ['one', 'one', 'two', 'three',
'two', 'two', 'one', 'three'],
'C' : randn(8), 'D' : randn(8)})

df = df.set_index(['A', 'B']).sort_index()
C D
A B
bar one 0.052069 -0.541728
three -1.703340 0.369047
two -0.221340 1.281790
foo one 0.219942 0.093917
one -2.531077 0.445473
three 0.243135 -1.730576
two -1.464053 1.241126
two -0.846171 -1.444660

如何检索 level=B 具有 two 或“三”的所有条目?

以下内容:

df.xs(['two', 'three'], level='B') 

不起作用。

但有趣的是,我是一一做的(?),即:

   df.xs(['two'], level='B') 

   df.xs(['three'], level='B') 

最佳答案

我通常使用其中一个

>>> df.query("B in ['two', 'three']")
C D
A B
bar three 1.493379 -0.323488
two 1.122867 -0.338157
foo three 0.228644 -0.343841
two -1.283377 0.724590
two -0.330542 1.646273

[5 rows x 2 columns]

>>> df[df.index.get_level_values('B').isin(["two", "three"])]
C D
A B
bar three 1.493379 -0.323488
two 1.122867 -0.338157
foo three 0.228644 -0.343841
two -1.283377 0.724590
two -0.330542 1.646273

[5 rows x 2 columns]

关于python - 获取多个DataFrame横截面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22639700/

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