我使用这个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.duplicated
和keep=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)