使用多个索引从Pandas数据框中删除列

时间:2016-04-09 23:56:43

标签: python pandas dataframe

我有一个带有两行索引的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

提前感谢您的帮助。

1 个答案:

答案 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