我想知道是否有一种方法可以检查Pandas列是否只包含0或1。这可以使用df.groupby('col').count()来完成,然后验证是否只有两个索引,并检查0和1是否是索引的一部分。有更好的方法吗?
df.groupby('col').count()
rxztt3cl1#
如果所有值均为True s x Series.all,则使用Series.isin进行测试:它返回True或False标志。在这里查看它的实际操作。让我们考虑以下 Dataframe :
True
Series.all
Series.isin
False
df = pd.DataFrame({'col1':[0,1,0], 'col2':[2,3,1]}) print (df) col1 col2 0 0 2 1 1 3 2 0 1 test = df['col1'].isin([0,1]).all() True test = df['col2'].isin([0,1]).all() False
2nbm6dog2#
您可以使用unique(),它将返回列中的所有唯一值例如:
#List unique values in the df['name'] column df.name.unique()
这将返回该列中存在的唯一值的数组
8i9zcol23#
可以将set运算与set.issubset一起使用:
set
set.issubset
{0, 1}.issuperset(df['col'])
示例:
df = pd.DataFrame({'col': [0, 1, 0]}) {0, 1}.issuperset(df['col']) # True
如果有多个列:
df = pd.DataFrame({'A': [0, 1, 2], 'B': [1, 1, 1], 'C': [0, 1, 0]}) df.apply({0, 1}.issuperset) # A False # B True # C True # dtype: bool
3条答案
按热度按时间rxztt3cl1#
如果所有值均为
True
s xSeries.all
,则使用Series.isin
进行测试:它返回
True
或False
标志。在这里查看它的实际操作。让我们考虑以下 Dataframe :2nbm6dog2#
您可以使用unique(),它将返回列中的所有唯一值
例如:
这将返回该列中存在的唯一值的数组
8i9zcol23#
可以将
set
运算与set.issubset
一起使用:示例:
如果有多个列: