实验2:Python数据预处理
创始人
2024-06-02 13:15:36
0

实验2:Python数据预处理

文章目录

  • 实验2:Python数据预处理
    • 一、实验目的与要求
    • 二、实验任务及答案

一、实验目的与要求

1、目的:

掌握数据预处理和分析的常用库Pandas的基本用法,学生能应用Pandas库实现对数据的有效查询、统计分析,以及进行必要的数据清洗或预处理,为进一步的机器学习应用做好必要的准备。

2、要求:

应用Pandas库对于给定的超市数据集进行必要的数据预处理和统计分析。

二、实验任务及答案

  1. 读取“超市营业额2.xlsx”中的数据,存入一个名为df的DataFrame对象中并显示前5行数据

    import pandas as pd#1.读取“超市营业额2.xlsx”中的数据,存入一个名为df的DataFrame对象中并显示前5行数据
    df = pd.read_excel('超市营业额2.xlsx')
    df.head()
    

    在这里插入图片描述

  2. 查看第1、3、5行中第2、4、6列的数据

    df.iloc[[0,2,4],[1,3,5]]
    

    在这里插入图片描述

  3. 显示李四销售化妆品的情况

    df.loc[(df['姓名'] == '李四') & (df['柜台'] == '化妆品')]
    

在这里插入图片描述

  1. 统计上半月的总交易额

    df.loc[df['日期'] < '2019-03-16', '交易额'].sum()
    
    161393.0
    
  2. 使用df中的数据分组统计每个人的交易额平均值(保留2位小数),将统计结果放入dff变量中并显示该结果

    dff = df.groupby('姓名')['交易额'].mean().round(2)
    dff
    
    姓名
    周七    1195.45
    张三    1529.74
    李四    1249.57
    王五    1472.30
    赵六    1245.98
    钱八    1322.72
    Name: 交易额, dtype: float64
    
  3. 对dff中的交易额平均值进行降序排列

    dff.sort_values(ascending=False)
    
    姓名
    张三    1529.74
    王五    1472.30
    钱八    1322.72
    李四    1249.57
    赵六    1245.98
    周七    1195.45
    Name: 交易额, dtype: float64
    
  4. 使用df中的数据按类别统计每个人的交易总额

    df.groupby(['姓名', '柜台'])['交易额'].sum()
    
    姓名  柜台  
    周七  化妆品      9516.0日用品     12863.0蔬菜水果    16443.0食品       8996.0
    张三  化妆品     22975.0日用品     18629.0蔬菜水果     7265.0食品       9261.0
    李四  化妆品     20467.0日用品     10104.0蔬菜水果    23263.0食品       4896.0
    王五  化妆品     10112.0日用品     11357.0蔬菜水果    10473.0食品      26950.0
    赵六  化妆品     12319.0日用品     23286.0蔬菜水果     2527.0食品      17937.0
    钱八  日用品     11923.0蔬菜水果    18561.0食品      17134.0
    Name: 交易额, dtype: float64
    
  5. 统计df中缺失值的个数

    df.isnull().sum()
    
    工号     0
    姓名     0
    日期     0
    时段     0
    交易额    3
    柜台     0
    dtype: int64
    
  6. 找出df中存在的重复行

    df[df.duplicated()]
    

    在这里插入图片描述

  7. 读取超市营业额2.xlsx中Sheet3中的数据,并与df中的数据合并,然后分类统计每人的交易额

    df3 = pd.read_excel('超市营业额2.xlsx', sheet_name='Sheet3')
    df3.head()
    df4 = pd.concat([df, df3])
    df4.groupby('姓名')['交易额'].sum()
    
    姓名
    周七    47818.0
    孙九        0.0
    张三    58130.0
    李四    58730.0
    王五    58892.0
    赵六    56069.0
    钱八    47618.0
    Name: 交易额, dtype: float64
    

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...