如何在pandas中筛选出仅包含True值的记录列表
解决方法
你现有代码的问题是直接把一整个布尔Series塞进了列表,无法直接筛选条目,你可以用以下两种方式直接得到所有重复事件的列表:
- 写法1:直接对事件计数结果过滤
# 计算每个事件的出现次数 event_counts = df_in['EVENTS'].value_counts() # 筛选出现次数大于1的事件,转为列表 dup_events = event_counts[event_counts > 1].index.tolist()
- 写法2:基于你已有的布尔标记筛选
如果你已经生成了布尔标记的Series,可以直接用布尔索引取值:
# 你得到的布尔标记Series bool_mask = df_in['EVENTS'].value_counts() > 1 # 筛选标记为True对应的事件,转为列表 dup_events = bool_mask[bool_mask].index.tolist()
两种写法得到的结果完全一致,都是所有出现过至少2次的事件组成的列表。
内容的提问来源于stack exchange,提问作者Bo Sanders
相关产品推荐
相关产品推荐

