📅  最后修改于: 2023-12-03 15:07:45.250000             🧑  作者: Mango
在数据处理过程中,经常会遇到 NaN (Not a Number) 值。 Pandas 是一个功能强大的数据处理库,提供了许多方法来处理 NaN 值。
可以使用 isnull() 方法检查 DataFrame 中的 NaN 值。该方法将返回一个布尔值 DataFrame,指示每个元素是否为 NaN。
下面是一个示例:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [np.nan, 4, 5], 'C': [6, 7, 8]})
print(df.isnull())
这将输出:
A B C
0 False True False
1 False False False
2 True False False
在这里,我们可以看到数据框的每个元素是否为 NaN。 如果是,那么该元素的值为 True。
可以使用 Pandas 中的许多方法计算缺失值。 下面是一些有用的方法:
count()方法将计算每个列中的非 NaN 值数。 这将帮助我们在 DataFrame 中找到缺失值。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [np.nan, 4, 5], 'C': [6, 7, 8]})
print(df.count())
这将输出:
A 2
B 2
C 3
dtype: int64
在这里,我们可以看到哪些列包含 NaN 值,以及每列中的非 NaN 值数量。
dropna()方法将删除含有 NaN 值的行或列。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [np.nan, 4, 5], 'C': [6, 7, 8]})
print(df.dropna()) # 删除含有 NaN 值的行
print(df.dropna(axis=1)) # 删除含有 NaN 值的列
这将输出:
A B C
1 2.0 4.0 7
C
0 6
1 7
2 8
fillna()方法将使用指定的值来填充 NaN 值。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [np.nan, 4, 5], 'C': [6, 7, 8]})
print(df.fillna(0)) # 将 NaN 值替换为 0
这将输出:
A B C
0 1.0 0.0 6
1 2.0 4.0 7
2 0.0 5.0 8
replace()方法将使用指定的值来替换指定的值。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [np.nan, 4, 5], 'C': [6, 7, 8]})
print(df.replace(np.nan, 0)) # 将 NaN 值替换为 0
这将输出:
A B C
0 1.0 0.0 6
1 2.0 4.0 7
2 0.0 5.0 8
在 Pandas 中,有多种方法可以使用、计算和处理缺失值。 在实际使用中,您可以根据需要选择其中一个方法。