📅  最后修改于: 2023-12-03 15:33:23.592000             🧑  作者: Mango
在使用 Pandas 进行数据处理时,经常会遇到需要删除包含 NaN(Not a Number)或缺失值的行的情况。 在这种情况下,我们可以使用 Pandas 的 dropna() 方法轻松删除包含 NaN 值的行。
DataFrame.dropna()
方法有几个参数,这里我们只讨论其中最常用的几个参数:
axis
: 删除的轴,默认为行(axis=0),如果想删除列使用 axis=1
。how
: 删除方式,默认值为 any
,表示只要该行/列中有任意一个 NaN 或缺失值就删除,可选值还有 all
,表示该行/列全为 NaN 或缺失值时才删除。inplace
: 布尔值,表示是否对原 DataFrame 进行修改,默认为 False
,不修改,而是返回新的 DataFrame。import pandas as pd
# 创建一个包含 NaN 值的 DataFrame
df = pd.DataFrame({
'A': [1, 2, np.nan, 4, np.nan],
'B': [5, np.nan, 7, np.nan, 9],
'C': [np.nan, 10, 11, 12, 13],
})
# 打印原 DataFrame
print('Original DataFrame:\n', df)
# 删除包含 NaN 值的行
df.dropna(inplace=True)
# 打印删除后的 DataFrame
print('DataFrame after dropping rows with NaN values:\n', df)
上述代码输出的结果如下:
Original DataFrame:
A B C
0 1.0 5.0 NaN
1 2.0 NaN 10.0
2 NaN 7.0 11.0
3 4.0 NaN 12.0
4 NaN 9.0 13.0
DataFrame after dropping rows with NaN values:
A B C
0 1.0 5.0 NaN
在上述示例中,我们使用 dropna()
方法删除了包含 NaN 值的第 1 行、第 3 行和第 4 行,最后得到只包含第 0 行的 DataFrame。
值得注意的是,由于我们设置了 inplace=True
,原来的 DataFrame 已经被修改了,所以需要小心使用。如果不希望修改原 DataFrame,可以将 inplace
的值设置为 False
,从而得到一个新的 DataFrame。