我有这种形式的DataFrame,其中位置和源是索引。 如何在位置索引中按值选择?
Count
place source
market A 5
D 4
B 3
ecomm A 7
C 6
B 4
我尝试过:
df_t[df_t.index.place=="market"]
但是我出错了。
这是理想的结果:
market A 5
D 4
B 3
答案 0 :(得分:2)
如果输出需要market
级,请使用DataFrame.xs
和drop_level
参数:
df1 = df_t.xs('market', drop_level=False)
您的解决方案可以通过Index.get_level_values
进行修改:
df1 = df_t[df_t.index.get_level_values('place')=="market"]
print (df1)
Count
place source
market A 5
D 4
B 3
如果需要删除此级别,则输出中不会删除MultiIndex
,因为默认值为drop_level
或DataFrame.loc
:
drop_level = True
df2 = df_t.xs('market')