按列级别/轴 1 多索引选择 Pandas 数据
Selecting Pandas data by column levels/ axis 1 multi-index
这是一段代码,它完成了我正在尝试做的部分工作:
selection=df.xs(('year2012','3quarter','A'),level=[0,1,2],axis=1)
如何在轴 1 的每个级别中选择多个条件?
以下似乎是错误的实现方式。
selection=df.xs(( ['year2012','year2015'] , ['3quarter','4quarter'] , 'A'), level=[0,1,2], axis=1
)
谢谢
考虑示例数据框 df
mux = pd.MultiIndex.from_product([
['year{}'.format(i) for i in range(2010, 2017)],
['{}quarter'.format(i) for i in range(1, 5)],
list('ABCD')
])
df = pd.DataFrame([np.arange(len(mux))], columns=mux)
df
执行此操作的方法是使用 pd.IndexSlice
l1 = ['year2012','year2015']
l2 = ['3quarter','4quarter']
l3 = 'A'
df.loc[:, pd.IndexSlice[l1, l2, l3]]
这是一段代码,它完成了我正在尝试做的部分工作:
selection=df.xs(('year2012','3quarter','A'),level=[0,1,2],axis=1)
如何在轴 1 的每个级别中选择多个条件? 以下似乎是错误的实现方式。
selection=df.xs(( ['year2012','year2015'] , ['3quarter','4quarter'] , 'A'), level=[0,1,2], axis=1
)
谢谢
考虑示例数据框 df
mux = pd.MultiIndex.from_product([
['year{}'.format(i) for i in range(2010, 2017)],
['{}quarter'.format(i) for i in range(1, 5)],
list('ABCD')
])
df = pd.DataFrame([np.arange(len(mux))], columns=mux)
df
执行此操作的方法是使用 pd.IndexSlice
l1 = ['year2012','year2015']
l2 = ['3quarter','4quarter']
l3 = 'A'
df.loc[:, pd.IndexSlice[l1, l2, l3]]