python - 从具有多个索引的 Pandas 数据框中删除列

标签 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

预先感谢您的帮助。

最佳答案

让我举个例子:

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

关于python - 从具有多个索引的 Pandas 数据框中删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36524171/

相关文章:

python - 如何用不同的变量y绘制多个对象?

python - 检查大型数据帧在 python 中合并/组合期间是否出现错误

python - Pandas DataFrame 中哪些列是二进制的?

python - Pandas :获取数据帧中对角线下方的元素(索引,列)

python - 在 PyQt4 中使用 KWallet

Python - 使用未知分隔符拆分数值字符串

python - 如何在 Python 中的 for 循环内附加数据帧

python - 将 DataFrame 插入/附加到 MultiIndex DataFrame

python - 将数据插入两列 csv

python - Geoviews:与英国等值区域图重叠的 map 图 block 无法完全对齐