我有一个 Panda 数据框列,我想检查列中的所有值是否都来自另一个列表。
例如,我想检查列中的所有值是否都是 A
或 B
而不是其他值。我的代码对于以下输入应返回 true:
myValues = ['A','B']
df = pd.DataFrame(['A','B','B','A'],columns=['Col']) # True
df = pd.DataFrame(['A','A'],columns=['Col']) # True
df = pd.DataFrame(['B'],columns=['Col']) # True
df = pd.DataFrame(['B','C'],columns=['Col']) # False
最佳答案
您可以使用isin
并传递您的列表以生成 bool 数组,并使用 all
返回是否所有值都存在:
In [146]:
myValues = ['A','B']
df = pd.DataFrame(['A','B','B','A'],columns=['Col']) # True
print(df['Col'].isin(myValues).all())
df = pd.DataFrame(['A','A'],columns=['Col']) # True
print(df['Col'].isin(myValues).all())
df = pd.DataFrame(['B'],columns=['Col']) # True
print(df['Col'].isin(myValues).all())
df = pd.DataFrame(['B','C'],columns=['Col']) # False
print(df['Col'].isin(myValues).all())
True
True
True
False
关于python - 如何将数据框唯一值与列表进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39594080/