将 pandas 数据帧转换为布尔值
Converting a pandas dataframe into bool values
我正在尝试编写一个代码来检查 pandas 系列的 Unix
列中是否有任何重复项。它应该 return 对于 DataSet
True
的 bool
值,因为 130
重复两次并且 False
对于 DataSet2
.我怎样才能得到下面的预期输出?
import pandas as pd
DataSet = pd.DataFrame({'Unix':[130, 140, 150, 130],
'Value':[11,2,3,4]})
DataSet2 = pd.DataFrame({'Unix':[130, 140, 150, 160],
'Value':[11,2,3,4]})
print(DataSet.duplicated(subset=['Unix']).bool())
print(DataSet2.duplicated(subset=['Unix']).bool())
预期输出:
True
False
如果作为参数传递给它的 collection 中有任何真实值(相反,.all()
returns True
仅当给定 collection 中的所有值都为真时):
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
,这更适合您的 use-case:
In [7]: DataSet.Unix.is_unique
Out[7]: False
In [8]: DataSet2.Unix.is_unique
Out[8]: False
供参考,.any()
和 .all()
函数是逻辑上等同于分别对 a 中的所有项目使用 or
和 and
的便捷方法collection.
使用.any()
代替.bool()
:
print(DataSet.duplicated(subset=['Unix']).any())
print(DataSet2.duplicated(subset=['Unix']).any())
输出:
True
True
(请注意,问题中给出的 DataSet
和 DataSet1
是相同的,因此两者都是 True
。我认为这只是一个错字,并不反映您的实际数据.)
你可以通过以下代码得到DataSet True
print(DataSet["Unix"].duplicated().sum() > 0)
我不知道为什么 DataSet2 是 False
我正在尝试编写一个代码来检查 pandas 系列的 Unix
列中是否有任何重复项。它应该 return 对于 DataSet
True
的 bool
值,因为 130
重复两次并且 False
对于 DataSet2
.我怎样才能得到下面的预期输出?
import pandas as pd
DataSet = pd.DataFrame({'Unix':[130, 140, 150, 130],
'Value':[11,2,3,4]})
DataSet2 = pd.DataFrame({'Unix':[130, 140, 150, 160],
'Value':[11,2,3,4]})
print(DataSet.duplicated(subset=['Unix']).bool())
print(DataSet2.duplicated(subset=['Unix']).bool())
预期输出:
True
False
如果作为参数传递给它的 collection 中有任何真实值(相反,.all()
returns True
仅当给定 collection 中的所有值都为真时):
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
,这更适合您的 use-case:
In [7]: DataSet.Unix.is_unique
Out[7]: False
In [8]: DataSet2.Unix.is_unique
Out[8]: False
供参考,.any()
和 .all()
函数是逻辑上等同于分别对 a 中的所有项目使用 or
和 and
的便捷方法collection.
使用.any()
代替.bool()
:
print(DataSet.duplicated(subset=['Unix']).any())
print(DataSet2.duplicated(subset=['Unix']).any())
输出:
True
True
(请注意,问题中给出的 DataSet
和 DataSet1
是相同的,因此两者都是 True
。我认为这只是一个错字,并不反映您的实际数据.)
你可以通过以下代码得到DataSet True
print(DataSet["Unix"].duplicated().sum() > 0)
我不知道为什么 DataSet2 是 False