在子集化

时间:2018-03-28 09:29:45

标签: python-3.x pandas subset valueerror

我有以下数据框:

print(df)

 Col    Col     Col  Name
  A      B       C   Alex
  B      B       C   Jack
  B      A       A   Mark

我希望得到以下结果,其中至少有一个出现:

 Col    Col     Col  Name
  A      B       C   Alex
  B      A       A   Mark

我试过了:

final_df = df [" Col"] ==" A"但它给了我" ValueError:无法从重复的轴重新索引"

1 个答案:

答案 0 :(得分:0)

如果您有重复的列名称存在问题,那么如果选择df["Col"],则会收到名为Col的所有列。

可能的解决方案是将所有列与any进行比较,以检查每行至少一个True

df = df[(df == 'A').any(1)]
print (df)
  Col Col Col
0   A   B   C
2   B   A   A

详细说明:

print ((df == 'A'))
     Col    Col    Col
0   True  False  False
1  False  False  False
2  False   True   True

print ((df == 'A').any(1))
0     True
1    False
2     True
dtype: bool