[英]Pandas find unique entries per row, ignoring a specific number
您的代码当前仅计算每行唯一条目的数量,因为您没有做任何忽略-1的操作。 这是您可以执行的操作:
a = pd.DataFrame({'0':[58, 59, 60],
'1':[58, 60, -1],
'2':[-1, 61, -1]})
def myfunc(row):
if -1 in row.values:
return row.nunique() - 1
else:
return row.nunique()
a['unique'] = a.apply(myfunc, axis=1)
a
0 1 2 unique
0 58 58 -1 1
1 59 60 61 3
2 60 -1 -1 1
您可以使用
a[a!=-1].nunique(axis=1)
忽略精确的-1
值,或
a[a>-1].nunique(axis=1)
忽略任何负值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.