Pandas 删除数据攻略
在数据处理过程中,我们经常需要删除不需要的数据,比如删除某些行/列,特定条件下的数据等。Pandas 提供了各种方法来实现这些功能,接下来我们将详细讲解 Pandas 删除数据的攻略,包括以下部分:
- Pandas 删除行/列数据:drop() 方法
- Pandas 删除满足特定条件的数据:query() 方法
- Pandas 删除重复数据:drop_duplicates() 方法
- Pandas 删除空值:dropna() 方法
在讲解以上内容之前,我们先创建一个数据集,用于后续实例的讲解:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'name':['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank'],
'gender':['F', 'M', np.nan, 'M', 'F', 'M'],
'score':[70, 80, 90, 85, np.nan, 92],
'class':['Class A', 'Class A', 'Class B', 'Class B', 'Class C', 'Class C']
})
创建的数据集 df 如下所示:
name | gender | score | class | |
---|---|---|---|---|
0 | Alice | F | 70.0 | Class A |
1 | Bob | M | 80.0 | Class A |
2 | Charlie | NaN | 90.0 | Class B |
3 | David | M | 85.0 | Class B |
4 | Emily | F | NaN | Class C |
5 | Frank | M | 92.0 | Class C |
1. Pandas 删除行/列数据:drop() 方法
Pandas 提供了一个 drop() 方法,可以用来删除行/列数据。
df.drop(columns=['class'], inplace=True)
上述代码中的 columns 参数指定了要删除的列,inplace 参数表示是否在原数据集上进行操作。
执行上述代码后,得到的 df 数据集如下:
name | gender | score | |
---|---|---|---|
0 | Alice | F | 70.0 |
1 | Bob | M | 80.0 |
2 | Charlie | NaN | 90.0 |
3 | David | M | 85.0 |
4 | Emily | F | NaN |
5 | Frank | M | 92.0 |
上述代码中的 columns 参数指定了要删除的列,inplace 参数表示是否在原数据集上进行操作。
如果要删除行数据,可以在 drop() 方法中设置参数 axis=0:
df.drop(index=[0, 4], inplace=True)
上述代码中的 index 参数指定了要删除的行,inplace 参数表示是否在原数据集上进行操作。
执行上述代码后,得到的 df 数据集如下:
name | gender | score | |
---|---|---|---|
1 | Bob | M | 80.0 |
2 | Charlie | NaN | 90.0 |
3 | David | M | 85.0 |
5 | Frank | M | 92.0 |
2. Pandas 删除满足特定条件的数据:query() 方法
Pandas 提供了一个 query() 方法,可以用来删除满足特定条件的数据。
df = df.query("gender == 'F'")
上述代码中的 query() 方法可以满足特定的查询条件,得到的数据集中仅保留了性别为 F 的行数据。注意:query() 方法中的查询条件需要使用双引号括起来。
执行上述代码后,得到的 df 数据集如下:
name | gender | score | |
---|---|---|---|
0 | Alice | F | 70.0 |
4 | Emily | F | NaN |
3. Pandas 删除重复数据:drop_duplicates() 方法
Pandas 提供了一个 drop_duplicates() 方法,可以用来删除重复数据。
df.drop_duplicates(subset="gender", inplace=True)
上述代码中,subset 参数指定需要检查重复的列,默认值为所有列。inplace 参数表示是否在原数据集上进行操作。
执行上述代码后,得到的 df 数据集如下:
name | gender | score | |
---|---|---|---|
0 | Alice | F | 70.0 |
1 | Bob | M | 80.0 |
2 | Charlie | NaN | 90.0 |
4. Pandas 删除空值:dropna() 方法
Pandas 提供了一个 dropna() 方法,可以用来删除空值。
df.dropna(subset=['score'], inplace=True)
上述代码中的 subset 参数指定了在哪些列中删除空值,默认删除所有列。inplace 参数表示是否在原数据集上进行操作。
执行上述代码后,得到的 df 数据集如下:
name | gender | score | |
---|---|---|---|
0 | Alice | F | 70.0 |
1 | Bob | M | 80.0 |
2 | Charlie | NaN | 90.0 |
3 | David | M | 85.0 |
5 | Frank | M | 92.0 |
至此,我们详细讲解了 Pandas 删除数据的攻略,包括删除行/列数据、删除满足特定条件的数据、删除重复数据和删除空值。以上方法在数据分析、数据清洗等场景中经常用到,建议掌握。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas 删除数据 - Python技术站