本文介绍了 pandas :使用MultiIndex选择的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
考虑以下数据框
In [136]:
df = pd.DataFrame({'A':[1,1,2,2],'B':[1,2,1,2],'C':np.arange(10,30,5)}).set_index(['A','B'])
df
Out[136]:
C
A B
1 1 10
2 15
2 1 20
2 25
In [130]:
vals = pd.DataFrame({'A':[1,2],'values':[True,False]}).set_index('A')
vals
Out[130]:
values
A
1 True
2 False
如何仅选择df
中具有相应True
值的df
行?
How can I select only the rows of df
with corresponding True
values in vals
?
如果我在两个框架上都按reset_index
键,现在可以合并/合并它们并根据需要进行切片,但是如何使用(多)索引呢?
If I reset_index
on both frames I can now merge/join them and slice however I want, but how can I do it using the (multi)indexes?
推荐答案
一路布尔索引...
In [65]: df[pd.Series(df.index.get_level_values('A')).isin(vals[vals['values']].index)]
Out[65]:
C
A B
1 1 10
2 15
请注意,您可以在多索引上使用xs.
Note that you can use xs on a multiindex.
In [66]: df.xs(1)
Out[66]:
C
B
1 10
2 15
这篇关于 pandas :使用MultiIndex选择的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!