识别跨列pandas dataframe的非零重复项



我有以下数据框架:

df = pd.DataFrame({'Column1': [150, 0, 18, 9],
'Column2': [150, 10, 12, 14],
'Column3': [0, 0, 18,3]})
print(df)

它看起来像这样:

Column1  Column2  Column3
0      150      150        0
1        0       10        0
2       18       12       18
3        9       14        3

我想在任何列中识别非零重复作为同一行的一部分(并且可以扩展到任何数量的列)。预期的结果:

Column1  Column2  Column3  result
0      150      150        0      1
1        0       10        0      0
2       18       12       18      1
3        9       14        3      0

你可以试试这个解决方案,

df['result'] = (
df.apply(lambda row: sum(row[row > 0].value_counts() > 1), axis=1)
)

Column1  Column2  Column3  result
0      150      150        0       1
1        0       10        0       0
2       18       12       18       1
3        9       14        3       0
df['result'] = df.replace(0, np.nan).apply(lambda x: x.dropna().duplicated().max(), axis = 1).astype(int)

输出:

Column1  Column2  Column3  result
0      150      150        0       1
1        0       10        0       0
2       18       12       18       1
3        9       14        3       0

最新更新