Python数据清洗:Pandas中的缺失值处理案例

原创 ╰半橙微兮° 2025-02-25 16:09 42阅读 0赞

在Python数据分析中,Pandas库提供了丰富的功能来处理数据,包括缺失值的处理。以下是一个简单的案例:

假设我们有一个关于学生学习情况的数据集student_scores.csv,其中可能包含缺失值。

  1. import pandas as pd
  2. # 读取数据集
  3. data = pd.read_csv('student_scores.csv')
  4. # 显示数据集中所有列的缺失值统计
  5. print(data.isnull().sum())

假设我们得到如下输出:

  1. age 0
  2. grade 0
  3. missing_age 5

这意味着有5名学生的年龄信息存在缺失。

根据这些信息,我们可以选择以下策略来处理这些缺失值:

  1. 删除:如果缺失值比例较大,且对分析结果影响不大,可以选择删除含有缺失值的行。
  1. data = data.dropna(subset=['age']]) # 删除年龄列的缺失值
  1. 填充:对于数值类型,可以使用如mean()median()等方法进行填充。对于类别数据,可以选择最常见的值进行填充。
  1. # 对于grade列,假设grade有'A', 'B', 'C'三个级别
  2. data['grade'].fillna('C', inplace=True) # 使用'fill_value'参数,对grade列缺失值进行填充
  3. # 进行其他类型的数据清洗操作...
  1. 插值:对于时间序列数据,可以使用如interp()等方法进行插值填充。
  1. import pandas as pd
  2. from scipy.interpolate import interp1d
  3. # 假设我们有一个包含日期和分数的数据集
  4. data = {'date': pd.to_datetime(['2020-01-01', '2020-01-05'])),
  5. 'score': [85, 90]}
  6. df = pd.DataFrame(data)
  7. # 创建一个基于date列的插值函数
  8. interp_function = interp1d(df['date'].values, df['score'].values))
  9. # 使用插值函数进行填充
  10. df['score'] = interp_function(df['date'])).tolist()
  11. print(df)

这将根据date列的日期生成一个插值函数,然后使用这个函数对缺失的score进行填充。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,42人围观)

还没有评论,来说两句吧...

相关阅读