📜  pandas drop row with nan - Python (1)

📅  最后修改于: 2023-12-03 15:33:23.592000             🧑  作者: Mango

Pandas Drop Row with NaN - Python

在使用 Pandas 进行数据处理时,经常会遇到需要删除包含 NaN(Not a Number)或缺失值的行的情况。 在这种情况下,我们可以使用 Pandas 的 dropna() 方法轻松删除包含 NaN 值的行。

DataFrame.dropna() 方法

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。