作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个df
即持有元素,每个元素可以有不同的类型:
df = pd.DataFrame({
'id':[1,1,2,2,2],
'type':['a','b','a','b','c']
})
这df
应该针对列表进行过滤并仅显示 ids
那types
包含所有 list
:
['a','b','c']
预期id
在这种情况下是:2 导致其所有 types
a,b,c 在列表中。
按 id
分组并获取其 types
的列表,但不知道如何与 list
进行比较或应用类似 set(list).issubset(types) 的东西:
df = df.groupby('id')['type'].apply(list)
df.reset_index(name = 'types')
查询list
, 但结果都是 types
在:
df.query('type in ["a","b","c"]')
很高兴得到提示 - 谢谢
最佳答案
你可以尝试 set.issubset
和 groupby.apply
l = ['a','b','c']
s = df.groupby("id")['type'].apply(lambda x: set(l).issubset(x))
s[s].index
Int64Index([2], dtype='int64', name='id')
s[s].index[0]
#2
关于python - 如何对数据框行进行分组并过滤字符串列表中的所有事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65708466/
我是一名优秀的程序员,十分优秀!