我有一个看起来像
的多索引数据框uid tid text
abc x t1
bcd y t2
uid 和 tid 是索引。我有一个 uid 的列表,并希望获得与该列表中的 uids 对应的行,但保留第二级索引值(tid)。我想这样做而不运行任何显式循环。这可能吗?
答案 0 :(得分:1)
数据:
L = ['abc', 'bcd']
print (df)
text
uid tid
abc x t1
abc1 x t1
bcd y t2
1。slicers
idx = pd.IndexSlice
df1 = df.loc[idx[L,:],:]
2. boolean indexing
+屏蔽get_level_values
+ isin
:
df1 = df[df.index.get_level_values(0).isin(L)]
df1 = df.query('@L in uid')
print (df1)
text
uid tid
abc x t1
bcd y t2