【发布时间】:2020-11-25 10:24:33
【问题描述】:
我有以下问题,主要类列表:
list_main_classes = [3,4]
data = pd.DataFrame({
'label_col':[1,1,2,2,3,3,3,4,4],
'second_classes_column':[
"class1",
"class2",
"class1",
"class2",
"class3",
"class3",
"class3",
"class4",
"class2"
]})
有一个列"second_classes_column"
我基本上想做的是从列表"list_main_classes" 中删除一些满足某些条件的元素。什么条件?
- 二等列不能命名
"certain_name" -
"second_classes_column"元素不得出现在'label_col'创建的组之外。这意味着对于由“label_col”的元素 4 创建的组"second_classes_column"中不得有出现在其他组中的元素。在我们的例子中,元素"class2"不满足这一点,因为它已经出现在之前(第 2 行和第 4 行)。因此,我们将删除 4,但从 list_main_classes 中保留 3,因为它满足所有要求,
问题有没有更快的方法来做到这一点,Pandas groupby,numpy,已经完成了 2 个 for 循环?
【问题讨论】:
-
我发现很难遵循您的最终结果。你能提供一个简单的
DataFrame和一些示例数据吗?我最初的想法是创建一些布尔掩码,但我不确定这是否可行,因为我不知道您要过滤什么 -
好的,如果我能详细说明,请告诉我。
标签: python pandas numpy pandas-groupby numpy-ndarray