Pandas统计数据帧中每行相等值的数量



我使用这个df:

A   B   C   D
1   1   2   3
2   1   3   4
3   3   3   3

我想添加列E,它按行保存列A-D中相等值的数量。预期输出:

A   B   C   D   E
1   1   2   3   2
2   1   3   4   0
3   3   3   3   4

有人能给我指正确的方向吗?谢谢

对所有重复使用Series.duplicatedkeep=False的自定义lambda函数,并通过sum:计数True

df['E'] = df.apply(lambda x: x.duplicated(keep=False).sum(), axis=1)
print (df)
A  B  C  D  E
0  1  1  2  3  2
1  2  1  3  4  0
2  3  3  3  3  4

如果需要,请指定列名:

df['E'] = df.loc[:, 'A':'D'].apply(lambda x: x.duplicated(keep=False).sum(), axis=1)

最新更新