python处理NA值
时间: 2025-01-10 13:45:26 浏览: 4
Python 中使用 Pandas 和 Numpy 处理缺失值
在数据科学项目中,处理缺失值是一项常见的任务。Pandas 提供了多种方法来识别和管理这些缺失的数据点。
使用 dropna()
删除含有缺失值的记录
对于一维序列(Series
),可以利用 dropna()
函数移除任何包含 NaN 的条目:
from numpy import nan as NA
import pandas as pd
data_series = pd.Series([1, NA, 3.5, NA, 7])
cleaned_data = data_series.dropna()
print(cleaned_data)
此操作会返回一个新的 Series 对象,其中不包含具有 NaN 值的项[^1]。
当设置阈值参数时,只有当非空数值的数量超过指定数量才会保留该行或列:
filtered_data = data_series.dropna(thresh=2)
print(filtered_data)
这允许更加灵活地控制哪些部分应该被丢弃。
利用统计量填补缺失值
另一种常见做法是以某种方式估算并替换掉丢失的信息。例如,可以通过计算均值、中位数或其他度量来进行填充:
df = pd.DataFrame({'A': [1., 2., None], 'B': [None, 4., 5.]})
filled_with_median = df.fillna(df.median())
filled_with_mean = df.fillna(df.mean())
print(filled_with_median)
print(filled_with_mean)
上述代码展示了如何分别采用各列各自的中间位置以及算术平均作为替代方案。
另外一种检测和筛选的方式是通过布尔索引配合 isna()
或者 notna()
来实现相同的效果:
alternative_cleaning = data_series[data_series.notna()]
print(alternative_cleaning)
这种方法同样能够有效地清除所有的 NULL/NaN 记录[^3]。
阅读全文