📅  最后修改于: 2023-12-03 15:37:25.636000             🧑  作者: Mango
在数据分析或机器学习中,处理数据时经常需要选择无值(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 值的行,可以使用 .dropna()
方法来剔除不包含 NaN 值的行,然后再使用 .loc
方法选取剩下的行:
df[df.isna().any(axis=1)]
输出:
A B C
1 2.0 NaN 2
2 NaN NaN 3
选取所有包含 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 值替换成其他的值。可以使用 .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 值的方法有:
df[df.isna().any(axis=1)]
df.loc[:, df.isna().any(axis=0)]
df.fillna(value)
,value 可以是任何值,例如 df.mean()