过滤多索引数据集(python/pandas)

Posted

技术标签:

【中文标题】过滤多索引数据集(python/pandas)【英文标题】:Filter a multi-index dataset (python/pandas) 【发布时间】:2021-12-10 15:00:53 【问题描述】:

我从数据集构建了一个数据透视表。 现在我想过滤数据集。 我只想保留第 21 列中的设置值与 22 中的设置值不同的行。如何使用多个索引来做到这一点?

resultaat.columns

结果:

MultiIndex([(  'SetValue', 21),
        (  'SetValue', 22)],
       names=[None, 'EquipmentID'])

【问题讨论】:

具有预期样本输出的样本 DataFrame 比仅列更有帮助。 【参考方案1】:

MultiIndex 中的选择值使用元组,对不相等使用cpmpare 并在boolean indexing 中进行过滤:

df1 = df[df[('SetValue', 21)].ne(df[('SetValue', 22)])]

如果将values参数添加到pivot

df = df.pivot(index=..., columns=..., values='SetValue')

df1 = df[df[21].ne(df[22])]

【讨论】:

以上是关于过滤多索引数据集(python/pandas)的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python/Pandas 将多索引数据写入 excel 文件

Python Pandas - 发布 concat 多索引数据帧

Python Pandas:如何添加另一个名称的多索引?

python pandas:重命名多索引数据框中的单列标签

Python Pandas 按多索引和列排序

Python Pandas 多索引名称警告