我有一个带有两行索引的PANDAS数据帧。我想根据第二行索引保留某些列。我怎么能这样做?我尝试过一些东西,但没有任何效果。例如,请考虑以下数据框:
AAA BBB CCC
C1 C2 C3 C1 C2 C3 C1 C2 C3
Index
1 1 2 3 4 5 6 1 2 3
2 2 5 0 7 8 9 7 4 5
3 7 4 1 5 7 2 2 5 9
如何为所有情况(例如AAA,BBB,CCC)仅保留C2列。因此,我希望:
AAA BBB CCC
C2 C2 C2
Index
1 2 5 2
2 5 8 4
3 4 7 5
提前感谢您的帮助。
答案 0 :(得分:3)
让我举个例子:
df = pd.DataFrame(np.random.randint(9,size=(3,9)))
df.columns = pd.MultiIndex.from_product([['AAA','BBB','CCC'],['C1','C2','C3']])
AAA BBB CCC
C1 C2 C3 C1 C2 C3 C1 C2 C3
0 8 3 7 2 8 7 1 8 2
1 8 3 1 8 5 2 0 1 0
2 4 0 0 5 8 4 7 1 5
df.iloc[:, df.columns.get_level_values(1)=='C2'] # note get_level_values()
AAA BBB CCC
C2 C2 C2
0 3 8 8
1 3 5 1
2 0 8 1