首页 > 解决方案 > 使用 issubset 比较两个 pandas 数据框列之间的设置值

问题描述

我有一个带有两列的熊猫数据框,其中填充了熊猫集。我想检查一列中的所有值是否是另一列的子集。我认为下面的代码可以工作,但似乎你不能将 .issubset() 应用于两个带有集合的系列。

前任:

data = [[['one','orange','green'],['one','orange']],[['milk','honey'],['Clarke', 'honey']]]

df = pd.DataFrame(data, columns=['Column_1','Column_2'])

Are_all_column_2_values_valid = df.loc[:, 'Column_2'].apply(set).issubset(df.loc[:, 'Column_1'])

desired_output = pd.series([True,False])

两组中的所有值都是字符串。

任何帮助将不胜感激!

标签: pythonpython-3.xpandasdataframeset

解决方案


首先确保您实际上有一系列集合:

df = df.apply(lambda x: x.apply(set))

然后使用语法糖<=set.issubset

print(df['Column_2'] <= df['Column_1'])

0     True
1    False
dtype: bool

推荐阅读