我有数据的熊猫数据帧中给定列中的所有行必须匹配:给定列中的所有行必须匹配,所有列
df = pd.DataFrame({'A': [1,1,1,1,1,1,1,1,1,1],
'B': [2,2,2,2,2,2,2,2,2,2],
'C': [3,3,3,3,3,3,3,3,3,3],
'D': [4,4,4,4,4,4,4,4,4,4],
'E': [5,5,5,5,5,5,5,5,5,5]})
In [10]: df
Out[10]:
A B C D E
0 1 2 3 4 5
1 1 2 3 4 5
2 1 2 3 4 5
...
6 1 2 3 4 5
7 1 2 3 4 5
8 1 2 3 4 5
9 1 2 3 4 5
我想一个快速的方法来知道是否有是DataFrame中任何地方的差异。在这一点上,我不需要知道哪些值已经变化,因为我将在稍后处理这些值。我只需要一个快速的方法来知道DataFrame是否需要进一步关注,或者我是否可以忽略它并继续下一步。
我可以检查使用
(df.loc[:,'A'] != df.loc[0,'A']).any()
任何给定的列,但我的大熊猫知识限制我通过列迭代(我的理解迭代的熊猫令人难以接受的)比较所有的人:
A B C D E
0 1 2 3 4 5
1 1 2 9 4 5
2 1 2 3 4 5
...
6 1 2 3 4 5
7 1 2 3 4 5
8 1 2 3 4 5
9 1 2 3 4 5
for col in df.columns:
if (df.loc[:,col] != df.loc[0,col]).any():
print("Found a fail in col %s" % col)
break
Out: Found a fail in col C
如果数据框的任何列中的任何行与列中的所有值都不匹配,是否有优雅的方式来返回布尔值?可能没有迭代?
到目前为止,所有的方法都能正常工作,但我认为使用nunique()将会是代码读者(我)正在做的事情的一个很好的暗示。 –