1. 初识.drop():数据清洗的"手术刀"
刚接触数据分析时,我最头疼的就是处理脏数据。记得有次拿到一份电商用户数据,里面混杂着测试账号、缺失的年龄信息、重复的订单记录,就像一团乱麻。直到我发现了.drop()这把"手术刀",才真正体会到数据清洗的效率之美。
.drop()是Pandas中最基础却最强大的数据清理工具之一。它的核心功能很简单:从DataFrame中删除指定的行或列。但就像外科医生的手术刀,简单的工具在高手手中能玩出各种花样。举个例子,假设我们有个学生成绩表:
python复制import pandas as pd
students = pd.DataFrame({
'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [18, 19, 20, None],
'成绩': [85, 92, 78, 65],
'班级': ['A', 'B', 'A', 'C']
})
想删除"赵六"这条记录(因为年龄缺失),一行代码就能搞定:
python复制clean_students = students.drop(3) # 删除索引为3的行
但.drop()的厉害之处在于它的灵活性。你可以:
- 按行或列删除(axis参数)
- 单次删除多个项目(传入列表)
- 直接修改原数据(inplace=True)
- 安全处理不存在的标签(errors='ignore')
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础操作:精准删除行与列
2.1 删除行的三种姿势
实际项目中,我常用的删除行方式有三种:
第一种:按索引删除
python复制# 删除单行(索引为2的行)
df.drop(2)
# 删除多行(非连续)
df.drop([1, 3, 5])
# 删除连续行(利用切片)
df.drop(df.index[10:20]) # 删除第10到19行
第二种:按条件删除
这是我用得最多的方式,特别适合清理异常值:
python复制# 删除成绩低于60分的记录
df = df.drop(df[df['成绩'] < 60].index)
# 复合条件:删除年龄大于30且成绩低于70的
condition = (df['年龄'] > 30) & (df
