首页 > 其他分享 >大数据分析与可视化 之 实验06 Pandas缺失值处理

大数据分析与可视化 之 实验06 Pandas缺失值处理

时间:2023-12-30 20:12:15浏览次数:32  
标签:06 缺失 晋江 Pandas 可视化 worksheet print data side

实验06 Pandas缺失值处理

实验学时:2学时
实验类型:验证
实验要求:必修

一、实验目的

  1. 掌握判断缺失值、过滤缺失值、填充缺失缺失值等缺失值处理
  2. 解决实际数据中的缺失值问题

二、实验要求

使用常见的缺失值处理函数(如:isnull()、notnull()、fillna()、dropna()函数)等知识在PyCharm中编写程序,解决实际数据中的缺失值处理问题。

三、实验内容

任务1.用分组的均值来填充缺失值,用Python编写程序实现。

   类别  产地   名称    单价
0  文具  晋江  文具盒    15.0
1  文具  厦门   钢笔     NaN
2  文具  厦门  订书机   18.0
3  服装  厦门   上衣     50.0
4  服装  晋江   裤子     35.0
5  鞋袜  晋江   棉袜     NaN
6  鞋袜  晋江   丝袜     12.0


      类别  产地   名称         单价
产地                          
厦门
      1  文具  厦门   钢笔    34.000000
      2  文具  厦门  订书机   18.000000
      3  服装  厦门   上衣    50.000000
晋江
      0  文具  晋江  文具盒   15.000000
      4  服装  晋江   裤子    35.000000
      5  鞋袜  晋江   棉袜    20.666667
      6  鞋袜  晋江   丝袜    12.000000

任务2. 有一个名为python1.xls的文件,内容如下图,现将表中的缓考、缺考的期末值用同姓所有同学的平均分填充。用Python编写程序实现。
image

任务3. 有一个名为python2.xlsx的文件,内容如下图,现将表中的数据做如下处理:
(1)读取数据,删除空行和空列;
(2)将分数列值为NAN(空值)的值填充为0分;
(3)将姓名的缺失值用“张生”进行填充。
(4)将处理好的数据保存在exepython2.xlsx中。
用Python编写程序实现。

test6.py

import numpy as np
import pandas as pd
import openpyxl as opx

from openpyxl.styles import Font, Alignment, Color, Border, Side

pd.set_option("display.unicode.east_asian_width", True)
pd.set_option("display.max_rows", None)


def task1():
    data = {
        '类别': ['文具', '文具', '文具', '服装', '服装', '鞋袜', '鞋袜'],
        '产地': ['厦门', '晋江', '晋江', '晋江', '厦门', '厦门', '厦门'],
        '类名称': ['文具盒', '钢笔', '订书机', '上衣', '裤子', '棉袜', '丝袜'],
        '单价': [15.0, None, 18.0, 50.0, 35, None, 12.0],
    }
    df = pd.DataFrame(data)
    print("原数据\n", df)
    df1 = df.groupby(['产地']).mean(numeric_only=True)
    print(df1)
    df2 = pd.DataFrame(df.values.T)
    df2 = df2.fillna({1: df1['单价'][0], 5: df1['单价'][1]})
    df = pd.DataFrame(df2.values.T)
    print("填充后\n", df)


def task2():
    data = pd.read_excel("./python1.xlsx", skiprows=4, usecols=(1, 5), skipfooter=12)
    data.columns = ['姓名', '期末']
    print('初始数据'.center(65, '-'), '\n', data)
    d = data.groupby(data['姓名'].str[0]).mean(numeric_only=True)
    print('分组后的数据'.center(65, '-'), '\n', d)
    print('陈姓同学的期末成绩平均值'.center(65, '-'), '\n', d['期末'].get('陈'))
    workbook = opx.load_workbook("./python1.xlsx")
    worksheet = workbook["sheet1"]
    worksheet['F13'] = d['期末'].get('陈')
    l_side = Side(style='dashDot', color=Color(indexed=10))
    r_side = Side(style='thin', color=Color(indexed=59))
    t_side = Side(style='thin', color=Color(indexed=59))
    b_side = Side(style='thin', color=Color(indexed=59))
    for i in range(4, 63):
        worksheet['D' + str(i)].border = Border(top=t_side, bottom=b_side)
        worksheet['I' + str(i)].border = Border(top=t_side, bottom=b_side, right=r_side)
    for i in range(55, 63):
        worksheet['B' + str(i)].border = Border(top=t_side, bottom=b_side)
        worksheet['E' + str(i)].border = Border(top=t_side, bottom=b_side)
        worksheet['F' + str(i)].border = Border(top=t_side, bottom=b_side)
        worksheet['H' + str(i)].border = Border(top=t_side, bottom=b_side)
    workbook.save('python1.xlsx')


def task3():
    data = pd.read_excel("./python2.xlsx", skiprows=1, usecols=(0, 1, 2, 4, 6, 7))
    data.columns = ['姓名', '高等数学', '大学英语', '操作系统', 'Python语言', '计算机组成原理']
    print('初始数据'.center(65, '-'), '\n', data)
    data = data.dropna(axis=0, how='all', subset=None, inplace=False)
    print('删除空行后的数据'.center(65, '-'), '\n', data)
    data = data.fillna({'高等数学': 0, '大学英语': 0, '操作系统': 0, 'Python语言': 0, '计算机组成原理': 0})
    print('填充分数为0后的数据'.center(65, '-'), '\n', data)
    data = data.fillna({'姓名': '张生'})
    print('姓名缺省值用张生填充'.center(65, '-'), '\n', data)
    data.replace({'缺考': 0}, inplace=True)
    data.to_excel('exepython2.xlsx', index=False)


if __name__ == '__main__':
    task1()
    task2()
    task3()

标签:06,缺失,晋江,Pandas,可视化,worksheet,print,data,side
From: https://www.cnblogs.com/IvanKK/p/17936736

相关文章

  • 大数据分析与可视化 之 实验07 Pandas合并与级联
    实验07Pandas合并与级联实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握pandas合并/拼接掌握pandas级联二、实验要求利用pandas合并、拼接和级联等知识在PyCharm中编写程序,实现Python数据处理的相关操作。三、实验内容任务1.现有如下图的两个DataFrame数据......
  • 大数据分析与可视化 之 实验08 Pandas字符串和文本处理
    实验08Pandas字符串和文本处理实验学时:2学时实验类型:验证实验要求:必修一、实验目的学会正确使用常见的字符串函数如:len()、find()、strip()、replace()、contains()函数。解决实际数据中的字符串和文本处理问题。二、实验要求使用常见的字符串函数(如:len()、find()、s......
  • 大数据分析与可视化 之 实验09 Pandas函数应用
    实验09Pandas函数应用实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握pandas函数应用的方法:pipe()、apply()和applymap()。能编写自定义函数。能使用pandas函数应用调用自定义函数解决数据分析实际问题。二、实验要求利用pandas函数应用的方法解决数据分析实......
  • 大数据分析与可视化 之 实验02 Numpy创建数组
    实验02Numpy创建数组实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握Numpy创建数组的方法掌握Numpyndarray的属性、运算掌握Numpy迭代数值,修改数组中元素的值掌握Numpy常用函数的使用方法二、实验要求使用Numpy.array的构造函数创建数组,学会使用Numpyndar......
  • 大数据分析与可视化 之 实验03 Numpy实现数据分析
    实验03Numpy实现数据分析实验学时:2学时实验类型:验证实验要求:必修一、实验目的掌握Numpy的字符串函数掌握Numpy统计函数掌握Numpy排序、分组、线性代数函数二、实验要求通过编程实现使用Numpy字符串函数进行文本处理,使用统计函数进行数据分析等常用操作。三、实验内......
  • 大数据分析与可视化 之 实验04 Pandas基础
    实验04Pandas基础实验学时:2学时实验类型:验证实验要求:必修一、实验目的1.掌握pandas系列、数据帧和面板的使用2.掌握pandas基本功能和操作二、实验要求Pandas程序的运行步骤。2.pandas的数据结构3.pandas系列、数据帧和面板pandas基本功能和操作三、实验内容任务1.......
  • 大数据分析与可视化 之 实验01 Python爬虫
    实验01Python爬虫实验学时:2学时实验类型:验证实验要求:必修一、实验目的理解爬虫技术掌握正则表达式、网络编程掌握re、socket、urllib、requests、lxml模块及其函数的使用二、实验要求 分析所需爬取信息网页的源代码,使用re、socket、urllib、requests、lxml模块及其函......
  • [软件测试] 06 黑盒 边界值测试 习题
    提示:篇幅较长,可以使用Ctrl+F,在页面中快速查询关键词(或者你要找的题目)并跳转到指定的位置。关键词:黑盒测试,边界值测试选择题边界值测试属于(D)。A.模块测试B.系统测试C.白盒测试D.黑盒测试在某汽车销售管理系统中,销售员可以根据当时的实际情况允许给客户0-15%的折......
  • [软件测试] 06 黑盒 边界值测试 习题
    提示:篇幅较长,可以使用Ctrl+F,在页面中快速查询关键词(或者你要找的题目)并跳转到指定的位置。关键词:黑盒测试,边界值测试选择题边界值测试属于(D)。A.模块测试B.系统测试C.白盒测试D.黑盒测试在某汽车销售管理系统中,销售员可以根据当时的实际情况允许给客户0-15%的折......
  • 06PCIE的GPIO控制卡
    软件版本:vitis2021.1(vivado2021.1)操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!6.1概述还记得2008年左右刚刚参加工作,买一个简单的PCI的DAQ数据卡,或者IO卡都要好几千元。市面上主要是研华,凌华的数据......