Pandas Dataframe 屏蔽错误:无法在带有重复标签的轴上重新索引

vltsax25  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(153)

我正试图获得我公司的一些数据的一些指标。
基本上,我有一个名为rawData的 Dataframe 。rawData包含许多列,其中大部分是我感兴趣的参数。我不认为这方面的细节太重要,因此我们可以将其视为参数1、参数2等。
这里有一个额外的列,我命名为overallResult。这个列总是包含字符串PASS或FAIL。我试图基于overallResult从原始数据中提取一个子 Dataframe 。听起来很简单,但不知何故我把实现搞砸了。
我的面具是这样做的:mask = rawData[总体结果].eq(truthyVal),其中,在本例中,truthyVal为通过
掩码创建成功,但是..
面具是这样的:filteredData = rawData[mask],我希望filteredData现在包含rawData所做的一切,但只在truthyVal存在的行上。
它总是给予我这个错误:不能在具有重复标签的轴上重新索引。
据我所知,掩码包含了一个overallResult列的布尔列表,如果在该行找到truthyVal,则为true,否则为false。我非常确定我没有正确地应用掩码。一定有一些小的额外步骤我忽略了,此时我很沮丧,因为它看起来太简单了,所以IDK,有什么想法吗?

6uxekuva

6uxekuva1#

如下面的基本示例所示,您的原则是正确的:

import pandas as pd

df = pd.DataFrame({'data': [ 1, 2, 3, 4, 5, 6],
                  'test': ['pass', 'fail', 'pass', 'fail','pass', 'fail']})

mask = df['test'].eq('pass')
print(df[mask])

要破译你的错误信息,有必要看看产生它的数据样本;您可能会获得一些有用的见解here

相关问题