📅  最后修改于: 2023-12-03 15:09:11.710000             🧑  作者: Mango
在Python中,NaN(Not-a-Number)是一种特殊的浮点数,用于表示未定义或不可表示的值。在数据分析中,NaN值通常表示缺失值。检查列是否有NaN值是数据清洗的重要步骤。本文将介绍如何在Python中检查列是否有NaN值。
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
除了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
在实际应用中,数据集往往较大,很难一眼看出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
在实际应用中,需要将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提供了丰富的方法和函数,方便数据分析人员进行数据清洗、转换和处理。