我的一些专栏是 MultiIndex,有些不是。 我似乎无法同时选择这两种类型。
例如,我可能想要列
['0', 'A']
以及列['2']
。
Name 0 1 2
Col A B
0 0.409511 -0.537108 -0.355529 0.212134
1 -0.332276 -1.087013 0.083684 0.529002
2 1.138159 -0.327212 0.570834 2.337718
df.loc[:,['0', '2']]
确实可以选择三列。我希望解决方案类似于df.loc[:,[('0', 'A'), '2']]
,但这行不通。
没有综合索引和简单索引这样的东西。
你的第二级必须有空字符串(或者可能是 NaNs?)
d = {'index': [0, 1, 2],
'columns': [(0, 'A'), (0, 'B'), (1, ''), (2, '')],
'data': [[0.409511, -0.537108, -0.355529, 0.212134],
[-0.332276, -1.087013, 0.083684, 0.529002],
[1.138159, -0.327212, 0.570834, 2.337718]],
'index_names': [None],
'column_names': ['Name', 'Col']}
df = pd.DataFrame.from_dict(d, orient='tight')
df
因此您应该使用:
df.loc[:, [(0, 'A'), (2, '')]]