📅  最后修改于: 2023-12-03 15:18:13.786000             🧑  作者: Mango
在处理pandas数据时,经常会遇到需要删除缺失值的情况。在处理数据时,我们可以使用 dropna()
方法来删除缺失值,并返回一个新的DataFrame对象。当我们处理数据的时候,可能只想在特定列上删除缺失值,这时我们可以使用 dropna()
方法的 subset
参数来指定列。
我们先来创建一个示例数据,以便后续使用:
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'age': [25, 23, np.nan, 27, 29],
'gender': ['f', 'm', 'm', 'm', np.nan],
'class': ['A', 'B', 'B', 'A', 'C']
})
# 展示DataFrame
print(df)
运行结果如下:
name age gender class
0 Alice 25.0 f A
1 Bob 23.0 m B
2 Charlie NaN m B
3 David 27.0 m A
4 Emily 29.0 NaN C
假设我们现在只想在 age
和 gender
两列上删除缺失值,我们可以将这两列的名称传递给 subset
参数。示例代码如下:
# 删除age和gender列上的缺失值
df_new = df.dropna(subset=['age', 'gender'])
# 展示删除缺失值后的DataFrame
print(df_new)
运行结果如下:
name age gender class
0 Alice 25.0 f A
1 Bob 23.0 m B
3 David 27.0 m A
我们可以看到,仅剩 age
和 gender
都不为缺失值的行保留了下来。
在pandas中,我们可以使用 dropna()
方法删除缺失值,并使用 subset
参数指定要删除缺失值的列。