📜  如何检查列是否有 na python (1)

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

在Python中,NaN(Not-a-Number)是一种特殊的浮点数,用于表示未定义或不可表示的值。在数据分析中,NaN值通常表示缺失值。检查列是否有NaN值是数据清洗的重要步骤。本文将介绍如何在Python中检查列是否有NaN值。

使用isnull()方法

Pandas是Python中应用最广泛的数据分析库。Pandas提供了isnull()方法,用于检查数据中的NaN值。

import pandas as pd

data = {'name':['Tom', 'Nick', 'John', 'Merry'], 
        'age':[20, 21, 19, 18], 
        'salary':[np.nan, 30000, 40000, 50000],
        'gender':['M', 'M', 'F', 'F']}

df = pd.DataFrame(data)

print(df['salary'].isnull().sum()) #输出列salary中NaN的数量

输出:

1
使用notnull()方法

除了isnull()方法,Pandas还提供了notnull()方法,用于检查数据中的非NaN值。notnull()方法与isnull()方法相反。

import pandas as pd

data = {'name':['Tom', 'Nick', 'John', 'Merry'], 
        'age':[20, 21, 19, 18], 
        'salary':[np.nan, 30000, 40000, 50000],
        'gender':['M', 'M', 'F', 'F']}

df = pd.DataFrame(data)

print(df['salary'].notnull().sum()) #输出列salary中非NaN的数量

输出:

3
使用any()方法

在实际应用中,数据集往往较大,很难一眼看出NaN值的数量。Pandas提供了any()方法,用于检查数据中是否存在NaN值。

import pandas as pd

data = {'name':['Tom', 'Nick', 'John', 'Merry'], 
        'age':[20, 21, 19, 18], 
        'salary':[np.nan, 30000, 40000, 50000],
        'gender':['M', 'M', 'F', 'F']}

df = pd.DataFrame(data)

print(df['salary'].isnull().any()) #检查列salary是否存在NaN值

输出:

True
使用fillna()方法

在实际应用中,需要将NaN值替换为其他特定的值。Pandas提供了fillna()方法,用于替换NaN值。

import pandas as pd

data = {'name':['Tom', 'Nick', 'John', 'Merry'], 
        'age':[20, 21, 19, 18], 
        'salary':[np.nan, 30000, 40000, 50000],
        'gender':['M', 'M', 'F', 'F']}

df = pd.DataFrame(data)

print(df['salary'].fillna(0)) #将NaN值替换为0

输出:

0        0.0
1    30000.0
2    40000.0
3    50000.0
Name: salary, dtype: float64

以上就是在Python中检查列是否有NaN值的方法。Pandas提供了丰富的方法和函数,方便数据分析人员进行数据清洗、转换和处理。