我正在嘗試撰寫一個代碼來檢查Unix熊貓系列中的列中是否有任何重復項。它應該回傳一個for的bool值,因為它重復了兩次和一個for 。我怎樣才能得到下面的預期輸出?TrueDataSet130FalseDataSet2
import pandas as pd
DataSet = pd.DataFrame({'Unix':[130, 140, 150, 130],
'Value':[11,2,3,4]})
DataSet2 = pd.DataFrame({'Unix':[130, 140, 150, 130],
'Value':[11,2,3,4]})
print(DataSet.duplicated(subset=['Unix']).bool())
print(DataSet.duplicated(subset=['Unix']).bool())
預期輸出:
True
False
uj5u.com熱心網友回復:
使用.any()代替.bool():
print(DataSet.duplicated(subset=['Unix']).any())
print(DataSet2.duplicated(subset=['Unix']).any())
輸出:
True
True
(請注意,DataSet問題DataSet1中給出的 和 是相同的,因此True兩者都是相同的。我認為這只是一個錯字,并不反映您的實際資料。)
uj5u.com熱心網友回復:
您可以通過以下代碼獲得 DataSet True
print(DataSet["Unix"].duplicated().sum() > 0)
我不知道為什么 DataSet2 是 False
uj5u.com熱心網友回復:
如果集合中有任何真值作為引數傳遞給它,您只需要呼叫.any()which 回傳(相反,僅當給定集合中的所有值都是真值時才回傳):True.all()True
In [5]: DataSet.duplicated(subset=['Unix']).any()
Out[5]: True
In [6]: DataSet2.duplicated(subset=['Unix']).any()
Out[6]: True
但是,我認為您可能不小心復制了錯誤的資料,DataSet2因為它是相同的,DataSet1并且False答案沒有意義。
請注意,您也可以使用.is_unique,這更適合您的用例:
In [7]: DataSet.Unix.is_unique
Out[7]: False
In [8]: DataSet2.Unix.is_unique
Out[8]: False
作為參考,.any()and.all()函式是邏輯上等價于在集合中的所有專案上分別使用orand的便捷方法。and
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/443527.html
上一篇:layui框架入門
下一篇:簡單的SQL查詢示例
