Python 带列表的数据帧多索引切片
我有一个多索引数据帧,大致如下:Python 带列表的数据帧多索引切片,python,pandas,Python,Pandas,我有一个多索引数据帧,大致如下: score id iso 0 AR 1.0203 BO 1.2303 CN 1.2402 NL 1.1202 SC 1.4552 1 AR 1.2004 BO 2.3030 CN 1.2039 NL 1.6043 SC 1.3949 从这个数据框中,我想获得iso代码列表中“id”=0的所有分数,例如: [
score
id iso
0 AR 1.0203
BO 1.2303
CN 1.2402
NL 1.1202
SC 1.4552
1 AR 1.2004
BO 2.3030
CN 1.2039
NL 1.6043
SC 1.3949
从这个数据框中,我想获得iso代码列表中“id”=0的所有分数,例如:
['AR'、'CN'、'SC']
通过一个元组列表,我可以获得这些分数,例如:
df.ix[[(0,'AR'),(0,'CN'),(0,'SC')],:]
结果:
score
id iso
0 AR 1.0203
CN 1.2402
SC 1.4552
现在,在用ix传递元组列表之前,我构建了元组列表。阅读时,我感觉有一种比传递元组列表更有效的方法,但我不知道如何处理它。在这种情况下,如何构建多索引切片器?您可以使用
或者更简单:
>>> df.loc[(0, ['AR','CN','SC']),:]
或者,或者:
>>> i = df.index.get_level_values(1).isin(['AR','CN','SC'])
>>> j = df.index.get_level_values(0) == 0
>>> df.loc[i & j]
>>> i = df.index.get_level_values(1).isin(['AR','CN','SC'])
>>> j = df.index.get_level_values(0) == 0
>>> df.loc[i & j]