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