我有一个 Pandas 数据框,其中有两列填充了 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])

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

任何帮助将不胜感激!

最佳答案

首先确保你确实有一系列的集合:

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

然后对 <= 使用语法糖 set.issubset :
print(df['Column_2'] <= df['Column_1'])

0     True
1    False
dtype: bool

关于python - 使用 issubset 比较两个 Pandas 数据框列之间的设置值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53384190/

10-12 21:09
查看更多