如何在Python中删除DataFrame指定id分组的所有行?
删除Pandas DataFrame中指定ID的行(保留ID=1和3)
有几种简单的方法可以实现只保留id=1和id=3的行,删除id=2和id=4的行:
方法1:布尔索引直接筛选
直接通过布尔索引筛选出id属于目标列表的行,这是最直观的方式:
# 筛选并保留id为1和3的行,生成新的DataFrame filtered_df = df[df['id'].isin([1, 3])] print(filtered_df)
方法2:用drop删除指定行
先定位到需要删除的行的索引,再调用drop方法移除它们:
# 获取id为2或4的行的索引 drop_rows = df[df['id'].isin([2, 4])].index # 删除这些行,如果想直接修改原DataFrame就加inplace=True,否则返回新对象 df_cleaned = df.drop(drop_rows) print(df_cleaned)
提示:如果不想修改原始的
df,别用inplace=True,直接把结果赋值给新变量就行。
方法3:用query方法简洁筛选
query方法支持用字符串表达式筛选,代码更简洁:
filtered_df = df.query('id in [1, 3]') print(filtered_df)
内容的提问来源于stack exchange,提问作者NN_Developer
相关产品推荐
相关产品推荐

