在多标头数据帧中,如何选择标头元组值之一且其余为任意值的列?

时间:2018-07-23 16:07:52

标签: python pandas dataframe

我有一个数据帧,其中标头具有3个值。我想选择数据框中我知道其中一个值的列,但其他两个值可以是任意值。

我已经尝试过了,但是不起作用:

df[slice(None), slice(None), "My header"]

这样做的时候,我收到一个错误消息,说这是“无效密钥”

我也尝试过使用loc:

df.loc[:, slice(None), slice(None), "My header"]

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

所以我不知道这是否是“最佳”解决方案,但最终对我有用的是首先使用以下命令对标头进行排序:

df.sort_index(axis=1, inplace=True)

然后使用slice(None):

df.loc[:, (slice(None), slice(None), "MyHeader3")]

希望这对其他人有帮助!

另一种解决方案:

df[[x for x in df.columns if 'header3' in x]]

不确定哪个更有效。