使用 dropna 方法删除行
在此步骤中,你将学习如何通过删除包含 null 值的行来处理缺失数据。在 Pandas 中,缺失数据用 NaN (Not a Number) 表示。处理 NaN 值最简单的策略之一是删除包含它们的行或列。
dropna() 方法可以让你轻松地做到这一点。默认情况下,它会删除包含至少一个 NaN 值的任何行。
首先,让我们运行初始脚本来查看我们的起始 DataFrame。设置脚本已在 ~/project 目录中创建了一个名为 main.py 的文件。
在 WebIDE 中打开一个终端并运行以下命令:
python3 main.py
你应该会看到原始 DataFrame,其中 age 和 city 列包含 NaN 值。
Original DataFrame:
name age city SALARY_IN_USD
0 Alice 25.0 New York 50000
1 Bob 30.0 Los Angeles 60000
2 Charlie 35.0 New York 70000
3 David 40.0 Chicago 80000
4 Alice 25.0 New York 50000
5 Eva NaN Boston 90000
6 Frank 45.0 NaN 100000
Original DataFrame Info:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7 entries, 0 to 6
Data columns (total 4 columns):
## Column Non-Null Count Dtype
--- ------ -------------- -----
0 name 7 non-null object
1 age 6 non-null float64
2 city 6 non-null object
3 SALARY_IN_USD 7 non-null object
dtypes: float64(1), object(3)
memory usage: 352.0+ bytes
现在,让我们使用 dropna() 来看看它是如何工作的。从左侧面板的文件浏览器中打开 main.py 文件。将以下代码添加到文件末尾。此代码将创建一个新的 DataFrame df_dropped,其中已删除包含 NaN 的行,并打印它。我们尚未修改原始的 df,因此可以在后续步骤中探索其他方法。
## Add this to the end of main.py
print("\nDataFrame after dropping rows with any missing values:")
df_dropped = df.dropna()
print(df_dropped)
保存文件(Ctrl+S 或 Cmd+S),然后从终端再次运行它:
python3 main.py
输出现在将包含一个新部分,显示在包含 NaN 值的行(Eva 和 Frank 的行)被删除后的 DataFrame。
## ... (previous output) ...
DataFrame after dropping rows with any missing values:
name age city SALARY_IN_USD
0 Alice 25.0 New York 50000
1 Bob 30.0 Los Angeles 60000
2 Charlie 35.0 New York 70000
3 David 40.0 Chicago 80000
4 Alice 25.0 New York 50000