我有一个很像这个问题中的数据框: Pandas: drop a level from a multi-level column index?
cols = pd.MultiIndex.from_tuples([("a", "b"), ("a", "c")])
pd.DataFrame([[1,2], [3,4]], columns=cols)
a
---+--
b | c
--+---+--
0 | 1 | 2
1 | 3 | 4
在上面的问题引用中,提问者想知道如何删除列标题 a
。我想知道如何删除它以及它下面的所有列(在本例中为 b
),以便生成的数据框看起来像:
| c
--+--
0 | 2
1 | 4
你能帮我实现这个吗?
为清楚起见,我认为“b”和“c”都包含在“a”下。但是,您可以在以下代码中选择要删除的内容。
首先构建DataFrame:
cols = pd.MultiIndex.from_tuples([("a", "b"), ("a", "c")])
df = pd.DataFrame([[1,2], [3,4]], columns=cols)
然后删除列 ('a','b')... 并删除 'a' 级别,留下 'c'。
df.drop([('a', 'b')], axis=1,inplace=True)
df.columns = df.columns.droplevel()
生成的 DataFrame 如下所示。
c
0 2
1 4
我是一名优秀的程序员,十分优秀!