我有以下数据框架:
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