如果它们相同,我如何比较多列的行

时间:2017-11-17 20:52:09

标签: python pandas

我有一个pandas DataFrame,我想检查行是否相同。这适用于数据帧中的3列。

A B C ...
1 1 1 ...
1 2 3 ...
1 4 4 ...

这应该带一个带

的面具
True
False
False

3 个答案:

答案 0 :(得分:5)

In [97]: df.eq(df.iloc[:, 0], axis=0).all(1)
Out[97]:
0     True
1    False
2    False
dtype: bool

答案 1 :(得分:4)

或者您可以使用$scope.editFunction = function(x,y){ console.clear(); $log.info(x); $log.info(y); };

nunique

答案 2 :(得分:3)

使用diff

df.diff(axis=1).fillna(0).eq(0).all(1)

0     True
1    False
2    False
dtype: bool

使用shift

df.eq(df.shift(axis=1)).iloc[:, 1:].all(1)

0     True
1    False
2    False
dtype: bool

使用std(受@Wen启发)

df.std(1).eq(0)

0     True
1    False
2    False
dtype: bool

受到@MaxU的启发,其中含有大量令人讨厌的东西。

(lambda v, j: pd.Series((v == v[:, [0]]).all(1), j))(df.values, df.index)

0     True
1    False
2    False
dtype: bool

现在不那么讨厌了

v = df.values
pd.Series((v == v[:, [0]]).all(1), df.index)