我有以下数据框
df = pd.DataFrame(np.random.choice(list('xyz'), (5, 4)), columns=list('ABCD'))
print df
A B C D
0 x z x z
1 y z x z
2 y z x x
3 y y y x
4 y x z z
我想将A
列与B
,B
与C
和C
与D
进行比较。
我知道我可以df.A == df.B
,但是有没有办法轻松地将所有列与相邻列进行比较?
我想看看
B C D
0 False False False
1 False False False
2 False False True
3 True True False
4 False False True
我试过这个
pd.concat([df.iloc[:, i] == df.iloc[:, i+1] for i in range(df.shape[1]-1)], axis=1, keys=df.columns.tolist()[1:])
我获得所需输出的方式。效率很重要,所以我觉得我的尝试是不充分的。如果这些是float
或int
s,我可以
df.diff(axis=1) == 0
但他们是字符串