📜  在 pandas 中选择无值 - Python (1)

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

在 pandas 中选择无值 - Python

在数据分析或机器学习中,处理数据时经常需要选择无值(NaN)的行或列。pandas 提供了一些方法来选择无值。

示例数据

为了演示如何选择无值,我们需要一个包含 NaN 值的示例数据集。可以使用以下代码生成一个简单的 DataFrame:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A':[1,2,np.nan],
    'B':[5,np.nan,np.nan],
    'C':[1,2,3]
})

生成DataFrame后,我们可以查看它的内容:

print(df)

输出:

     A    B  C
0  1.0  5.0  1
1  2.0  NaN  2
2  NaN  NaN  3
选择 NaN 值
选择 NaN 值所在的行

选取所有包含 NaN 值的行,可以使用 .dropna() 方法来剔除不包含 NaN 值的行,然后再使用 .loc 方法选取剩下的行:

df[df.isna().any(axis=1)]

输出:

     A   B  C
1  2.0 NaN  2
2  NaN NaN  3
选择 NaN 值所在的列

选取所有包含 NaN 值的列,可以使用 .dropna() 方法来剔除不包含 NaN 值的列,然后再使用 .loc 方法选取剩下的列:

df.loc[:, df.isna().any(axis=0)]

输出:

     A    B
0  1.0  5.0
1  2.0  NaN
2  NaN  NaN
替换 NaN 值

在某些情况下,我们需要将 NaN 值替换成其他的值。可以使用 .fillna() 方法来替换 NaN 值。例如,我们将 NaN 值替换为每列的平均值:

df.fillna(df.mean())

输出:

     A    B  C
0  1.0  5.0  1
1  2.0  5.0  2
2  1.5  5.0  3
总结

在 pandas 中选择 NaN 值的方法有:

  • 选取包含 NaN 值的行:df[df.isna().any(axis=1)]
  • 选取包含 NaN 值的列:df.loc[:, df.isna().any(axis=0)]
  • 替换 NaN 值:df.fillna(value),value 可以是任何值,例如 df.mean()