Python按条件删除指定数量行:如何删除1165条Sentiment=2的数据行
解决方法
你的代码存在两个问题:
- 语法错误:
loc后面应该用方括号[],不是圆括号() - 逻辑颠倒:你写的代码是选中了要删除的1165行,而非保留剩余的行
按顺序删除前1165条Sentiment=2的行
直接用drop方法删除指定索引即可:
# 获取所有Sentiment=2的行索引 sentiment_2_indices = data_reviews[data_reviews["Sentiment"] == 2].index # 删除前1165个索引对应的行 updated_data_reviews = data_reviews.drop(sentiment_2_indices[:1165])
如果需要随机删除1165条(而非按顺序)
要是不想固定删除前1165条,而是随机抽取删除,用sample方法更合适:
# 随机挑选1165个Sentiment=2的行索引 to_drop_indices = data_reviews[data_reviews["Sentiment"] == 2].sample(n=1165).index # 删除这些行 updated_data_reviews = data_reviews.drop(to_drop_indices)
处理完成后,你可以用len(updated_data_reviews[updated_data_reviews["Sentiment"] == 2])验证结果,应该得到1465-1165=300条,符合需求。
内容的提问来源于stack exchange,提问作者Zain
相关产品推荐
相关产品推荐

