筛选DataFrame:保留含type为new的ID的全部记录
筛选DataFrame:保留包含"new"类型的ID的所有记录
原始DataFrame
id type 1 new 2 new 2 new repeater 2 repeater 3 repeater 4 new 4 new repeater 5 new repeater 5 repeater 6 new
需求
仅保留那些ID对应的type列中至少存在一个"new"值的所有记录。
预期结果
id type 1 new 2 new 2 new repeater 2 repeater 4 new 4 new repeater 6 new
解决方案(Pandas)
import pandas as pd # 构造原始数据 df = pd.DataFrame({ 'id': [1, 2, 2, 2, 3, 4, 4, 5, 5, 6], 'type': ['new', 'new', 'new repeater', 'repeater', 'repeater', 'new', 'new repeater', 'new repeater', 'repeater', 'new'] }) # 第一步:找出所有包含"new"类型的ID valid_ids = df[df['type'].str.contains('new')]['id'].unique() # 第二步:筛选出这些ID的所有记录 filtered_df = df[df['id'].isin(valid_ids)] # 输出结果 print(filtered_df)
说明
- 用
str.contains('new')定位type列含"new"的行,提取这些行的id并去重,得到有效ID集合 - 通过
isin(valid_ids)筛选原始DataFrame中所有属于有效ID的记录,确保只要某个ID存在至少一行"new"类型,就保留该ID的全部行
内容的提问来源于stack exchange,提问作者teogj
相关产品推荐
相关产品推荐

