我有这样一个数据框:

             userid  number  weight mask
0    17cf2504d0c7       1      1    56
1    17cf2504d0c7       2      5    56
2    17cf2504d0c7       3      3    123


我只是想返回一个子集,其中“权重”出现在数字“掩码”列表中

             userid  number  weight mask
1    17cf2504d0c7       2      5    56
2    17cf2504d0c7       3      3    123


我似乎很困惑,没有使用迭代器,这似乎是对熊猫的浪费。

最佳答案

嗯,一种方法是将整数转换为set并使用设置减法。

mask_ = df.weight.astype(str).apply(set).sub(df['mask'].astype(str).apply(set)).str.len().eq(0)


然后

df.loc[mask_, :]


    userid          number  weight  mask
1   17cf2504d0c7    2       5       56
2   17cf2504d0c7    3       3       123

关于python - Pandas 基于column.isin.list(column)返回子集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55553946/

10-12 21:26