下面我会详细讲解Python的缺失值处理方法,并附上两条示例说明。
什么是缺失值?
缺失值是数据分析中很常见的问题,缺失值意味着某个数据点的值没有在数据集中出现,或者该数据点中存在空值或NaN。
在Python中,通常使用numpy和pandas库对缺失值进行处理。
缺失值处理方法
以下是Python中常用的缺失值处理方法:
删除数据
最简单的方法是删除包含缺失值的整行数据或整列数据。在pandas中,可以使用dropna()
函数来删除缺失值。
import pandas as pd
# 创建含有缺失值的数据集
df = pd.DataFrame({'A': [1, 2, np.nan, 4],
'B': [5, 6, 7, np.nan],
'C': [8, 9, 10, 11]})
print(df)
# 删除包含缺失值的行
print(df.dropna())
# 删除包含缺失值的列
print(df.dropna(axis=1))
上述代码中创建了一个包含缺失值的数据集,使用dropna()
函数删除包含缺失值的行或列后,得到了不含缺失值的新数据集。
填充数据
另一种方法是使用某些方法填充缺失的数据。在pandas中,fillna()
函数可以用于填充缺失值。
import pandas as pd
# 创建含有缺失值的数据集
df = pd.DataFrame({'A': [1, 2, np.nan, 4],
'B': [5, 6, 7, np.nan],
'C': [8, 9, 10, 11]})
print(df)
# 使用指定值填充缺失值
print(df.fillna(value=0))
# 使用均值填充缺失值
print(df.fillna(value=df.mean()))
上述代码中使用fillna()
函数填充缺失值,填充方式可以是使用指定值、均值等。
示例说明
示例一:使用删除数据方法
假设我们有一个包含体型、年龄、性别和饮食偏好等信息的数据集,其中年龄和饮食偏好存在缺失值。在这种情况下,我们可以使用删除数据的方法。
import pandas as pd
# 创建含有缺失值的数据集
df = pd.DataFrame({'size': ['M', 'L', 'S', 'XL'],
'age': [20, 24, np.nan, 18],
'gender': ['F', 'M', 'F', 'M'],
'food': ['steak', np.nan, 'vegetarian', 'spicy']})
print(df)
# 删除包含缺失值的行
df.dropna(inplace=True)
# 打印处理后的数据
print(df)
上述代码中,我们创建了一个包含缺失值的数据集,使用dropna()
函数删除包含缺失值的行后,得到了不含缺失值的新数据集。
示例二:使用填充数据方法
假设我们有一个包含体型、年龄、性别和饮食偏好等信息的数据集,其中年龄和饮食偏好存在缺失值。在这种情况下,我们可以使用填充数据的方法。
import pandas as pd
# 创建含有缺失值的数据集
df = pd.DataFrame({'size': ['M', 'L', 'S', 'XL'],
'age': [20, 24, np.nan, 18],
'gender': ['F', 'M', 'F', 'M'],
'food': ['steak', np.nan, 'vegetarian', 'spicy']})
print(df)
# 使用均值填充age列中的缺失值
df['age'].fillna(value=df['age'].mean(), inplace=True)
# 使用众数填充food列中的缺失值
df['food'].fillna(value=df['food'].mode()[0], inplace=True)
# 打印处理后的数据
print(df)
上述代码中,我们创建了一个包含缺失值的数据集,使用fillna()
函数填充缺失值后,得到了处理后的数据集。age
列使用了均值填充法,food
列使用了众数填充法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python缺失值处理方法 - Python技术站