我有以下 pd.DataFrame:
Name 0 1 ...
Col A B 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 ...
它具有带有 names=['Name', 'Col']
和分层级别的 MultiIndex 列。 Name
标签从 0 到 n,对于每个标签,有两个 A
和 B
列。
我想子选此 DataFrame 的所有 A
(或 B
)列。
最佳答案
有一个 get_level_values
方法可以与 bool 索引结合使用以获得预期的结果。
In [13]:
df = pd.DataFrame(np.random.random((4,4)))
df.columns = pd.MultiIndex.from_product([[1,2],['A','B']])
print df
1 2
A B A B
0 0.543980 0.628078 0.756941 0.698824
1 0.633005 0.089604 0.198510 0.783556
2 0.662391 0.541182 0.544060 0.059381
3 0.841242 0.634603 0.815334 0.848120
In [14]:
print df.iloc[:, df.columns.get_level_values(1)=='A']
1 2
A A
0 0.543980 0.756941
1 0.633005 0.198510
2 0.662391 0.544060
3 0.841242 0.815334
关于python - Pandas 数据框选择多索引中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189575/