簡體   English   中英

熊貓每行查找唯一條目,而忽略特定數量

[英]Pandas find unique entries per row, ignoring a specific number

我有一個簡單的數據集,已作為數據幀存儲在熊貓中。 我已經嘗試過每行來測量唯一條目的數量,但是如果顯示為-1,則忽略它。

在數據框附加列的下方 在此處輸入圖片說明

...

在此處輸入圖片說明

我正在通過添加此列

pdSequences['unique']=pdSequences.apply(pd.Series.nunique, axis=1)

但是如您所見,代碼並不總是能夠正常工作。 第一行正確返回唯一性為4(忽略最后兩個-1)。

如果您看到第28行,我想返回5,但是代碼返回6。

您能幫助我理解為什么我得到這兩種不同類型的行為以及如何計算唯一條目(但忽略-1)嗎?

謝謝亞歷克斯

您的代碼當前僅計算每行唯一條目的數量,因為您沒有做任何忽略-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM