Python数据分析复习整理(综合应用)

2023-11-08

数据分析

指使用适当的统计分析方法对搜集来的大量数据进行分析,提取有用信息并形成结论,从而对数据进行更加详细的研究和概括总结的过程。

数组转置

数据转置是数组重塑的一种特殊形式。

哑变量

又称虚拟变量,是用以反映质的属性的一种人工变量,是量化了的质变量,通常取值0或1。

离散化

将数值进行离散化分段统计以提高数据的区分度。

1.Numpy

1.创建一个数组,数组的shape为(3,2),元素都是0。

import numpy as np
# 1.创建一个数组,数组的shape为(3,2),元素都是0。
a = np.zeros([3,2])
a
array([[0., 0.],
       [0., 0.],
       [0., 0.]])
# 重塑上述数组的维度为2行3列。
b = a.reshape(2,3)
b
array([[0., 0., 0.],
       [0., 0., 0.]])
# 创建一个表示国际象棋棋盘的8*8数组,其中,棋盘白色用0填充,黑色用1表示
arr = np.zeros((8,8),dtype=int)
# 从第一行开始,行间隔为2,从第0列开始,列间隔为2,赋值为1
arr[1::2,0::2] = 1
# 从第0行开始,行间隔为2,从第1列开始,列间隔为2,赋值为1
arr[0::2,1::2] = 1
arr
array([[0, 1, 0, 1, 0, 1, 0, 1],
       [1, 0, 1, 0, 1, 0, 1, 0],
       [0, 1, 0, 1, 0, 1, 0, 1],
       [1, 0, 1, 0, 1, 0, 1, 0],
       [0, 1, 0, 1, 0, 1, 0, 1],
       [1, 0, 1, 0, 1, 0, 1, 0],
       [0, 1, 0, 1, 0, 1, 0, 1],
       [1, 0, 1, 0, 1, 0, 1, 0]])

2.Pandas

import pandas as pd
# 使用DataFrame创建数据
df_data = np.array([[1,2,7,3],[5,2,4,0],[8,4,2,5],[8,9,3,2]])
col_data = np.array(['A','B','C','D'])
# 基于数据创建DataFrame对象
df_obj = pd.DataFrame(columns=col_data,data=df_data)
df_obj
A B C D
0 1 2 7 3
1 5 2 4 0
2 8 4 2 5
3 8 9 3 2
# 对B列数据进行降序排序
sort_value_data = df_obj.sort_values(by=['B'],ascending=False)
sort_value_data
A B C D
3 8 9 3 2
2 8 4 2 5
0 1 2 7 3
1 5 2 4 0
# 将排序后的数据写入到csv文件,并命名为write_data.csv
sort_value_data.to_csv(r'D:\write_data.csv')

3.数据预处理

现有如下图所示两组数据,其中A组中B列数据存在缺失值。

A组

A B C key
0 2 5 8 3
1 3 nan 7 4
2 5 2 50 5
3 2 3 8 2
4 3 6 2 2

B组

A B C
0 3 3 3
1 4 4 4
2 5 5 5
  1. 使用DataFrame创建这两组数据。
  2. 对A组中的缺失值进行填充,填充方向为时间填充。
  3. 合并A组和B组,要求按列的方向堆叠数据,并使用内连接。
#使用DataFrame创建这两组数据。
group_a = pd.DataFrame({'A':[2,3,5,2,3],
                       'B':[5,np.nan,2,3,6],
                       'C':[8,7,50,8,2],
                       'key':[3,4,5,2,2]},dtype=int)
group_b = pd.DataFrame({'A':[3,4,5],
                       'B':[3,4,5],
                       'C':[3,4,5]},dtype=int)
print(group_a)
print(group_b)
   A    B   C  key
0  2    5   8    3
1  3  NaN   7    4
2  5    2  50    5
3  2    3   8    2
4  3    6   2    2
   A  B  C
0  3  3  3
1  4  4  4
2  5  5  5
# 对A组中的缺失值进行填充,填充方向为时间填充。
group_a = group_a.fillna(method='ffill')
group_a
A B C key
0 2 5 8 3
1 3 5 7 4
2 5 2 50 5
3 2 3 8 2
4 3 6 2 2
# 合并A组和B组,要求按列的方向堆叠数据,并使用内连接。
group_c = pd.concat([group_a,group_b],axis=1,join='inner')
group_c
A B C key A B C
0 2 5 8 3 3 3 3
1 3 5 7 4 4 4 4
2 5 2 50 5 5 5 5

4.分组聚合

现有如下图所示学生信息,请根据图中的信息完成以下操作。

年级 姓名 年龄 性别 身高 体重
0 大一 张三 18 175 65
1 大二 李四 19 165 70
2 大三 王五 20 178 75
3 大四 刘六 22 175 55
4 大二 孔七 12 160 70
5 大三 冯八 32 180 70
6 大一 孟九 21 167 52
7 大三 孔十 22 170 53
8 大四 张三一 12 185 73
  1. 根据年级信息为分组键,对学生信息进行分组,并输出大一学生信息。
  2. 分别计算四个年级中身高最高的同学。
  3. 计算大一学生与大三学生的平均体重。
students_data = pd.DataFrame({'年级':['大一','大二','大三','大四','大二','大三','大一','大三','大四'],
                             '姓名':['张三','李四','王五','刘六','孔七','冯八','孟九','孔十','张三一'],
                             '年龄':[18,19,20,22,12,32,21,22,12],
                             '性别':['男','女','男','男','女','男','女','女','男'],
                              '身高':[175,165,178,175,160,180,167,170,185],
                              '体重':[65,70,75,55,70,70,52,53,73]})
students_data
年级 姓名 年龄 性别 身高 体重
0 大一 张三 18 175 65
1 大二 李四 19 165 70
2 大三 王五 20 178 75
3 大四 刘六 22 175 55
4 大二 孔七 12 160 70
5 大三 冯八 32 180 70
6 大一 孟九 21 167 52
7 大三 孔十 22 170 53
8 大四 张三一 12 185 73
# 根据年级信息为分组键,对学生信息进行分组,并输出大一学生信息。
data = students_data.groupby('年级')
Freshaman = dict([x for x in data])['大一']
Freshaman
年级 姓名 年龄 性别 身高 体重
0 大一 张三 18 175 65
6 大一 孟九 21 167 52
# 分别计算四个年级中身高最高的同学。
data1 = students_data[['身高','年级']].groupby(by='年级').max()
data2 = pd.merge(students_data,data1,on=['身高','年级'],how='right')
data2
姓名 年龄 性别 身高 体重
年级
大一 张三 18 175 65
大二 李四 19 165 70
大三 冯八 32 180 70
大四 张三一 12 185 73
# 计算大一学生与大三学生的平均体重。
print(Freshaman['体重'].apply('mean'))
58.5
data = students_data.groupby('年级')
Freshaman = dict([x for x in data])['大三']
print(Freshaman['体重'].apply('mean'))
66.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python数据分析复习整理(综合应用) 的相关文章

随机推荐

  • Java架构直通车——Java基础面试考点清单

    文章目录 基础 J U C jvm虚拟机 数据结构 算法 Spring RPC通信框架 网络通信 MQ 缓存 Mybatis 其他技术 基础 强引用 弱引用 虚引用 软引用 final关键字的作用 方法 变量 类 泛型 泛型继承 泛型擦除
  • 谷歌浏览器常用插件

    1 高对比度模式 调节流量器界面的颜色方案 挑选自己喜欢的效果 2 Pocket 将浏览过的网站收藏到这里 方便后续阅读 未完待续
  • python实现分页功能

    python实现分页功能 class Pagination def init self current page per page num 10 self per page num per page num if not current p
  • python画箱线图代码_箱线图(Python代码)

    箱线图 理论 懒得介绍了 用五位数描述数据 能够准确稳定地描绘出数据的离散分布情况 不受异常值影响 不能精确地衡量数据分布的偏态和尾重程度 对于批量比较大的数据 反映的信息更加模糊以及用中位数代表总体评价水平有一定的局限性 plt boxp
  • go 进阶 go-zero相关: 四. 服务注册原理

    目录 一 基础 二 resolver 服务注册底层原理 1 创建registerEtcd函数 并将该函数封装到keepAliveServer结构体中 2 执行registerEtcd函数实现服务注册 3 registerEtcd 服务注册详
  • 从编程角度看SSL协议(2)ssl库--SSLContext类

    1 SSLContext类介绍 ssl库中除了提供SSLSocket类以外 还提供了SSLContext类 相比于SSLSocket类 SSLContext提供了丰富的属性 供我们修改和查看SSL握手时的参数 我们可以通过以下命令来实例化S
  • vue day02 error

    搭建路由的时候出问题了 但是最后貌似没有报错 我估计是版本兼容的问题 目前项目运行时没问题 也显示安装成功 看看以后使用会不会出问题吧 C Users little shark Desktop project SPH app gt cnpm
  • uni-app实现再次返回退出应用时不退出应用而是在后台运行

    如果APP需要后台驻留 用户返回到首页时会提示退出操作 我们可以不退出而是隐藏至后台 这样的话APP就会在后台运行 以下代码须写在main js里面 弹出的内容可自定义设 置 ifdef APP PLUS let main plus and
  • Python 将控制台输出另存为日志文件

    文章目录 Python 将控制台输出另存为日志文件 需求 方法一 使用 Logger 类 推荐 方法二 仅使用 sys 方法三 使用 logging 模块 参考文献 Python 将控制台输出另存为日志文件 需求 在 PyCharm 中或者
  • Linux底层开发之四书五经

    操作系统 Linux 内核设计与实现 第2 版 深入理解Linux 内核 第二版 Linux内核分析与编程 Linux方面的好书最多 其中 Linux 内核设计与实现 第2 版 Robert Love著 机械工业出版社出版译著 属短小精悍之
  • AI帮个忙(网页)

    首先 AI帮个忙站内目前有25种AI工具 主要包含有周报日报生成器 总结概括小助手 视频脚本生成器 小红书风格模拟器 餐厅或商品点评器 节日祝福 夸夸小助手 哄女朋友小助手 帅锅小助手等等多种有趣并且实用的小工具 在使用时也是非常简单的 找
  • 《银行法律法规》三、银行管理——2、公司治理、 内部控制与合规管理

    第二章 公司治理 内部控制与合规管理 第一节 公司治理 考点1 银行公司治理概述 商业银行公司治理是指股东大会 董事会 监事会 高级管理层 股东及其他利益相关者之间的相互关系 包括组织架构 职责边界 履职要求等治理制衡机制 以及决策 执行
  • 1071 小赌怡情(15 分) java

    1071 小赌怡情 15 分 常言道 小赌怡情 这是一个很简单的小游戏 首先由计算机给出第一个整数 然后玩家下注赌第二个整数将会比第一个数大还是小 玩家下注 t 个筹码后 计算机给出第二个数 若玩家猜对了 则系统奖励玩家 t 个筹码 否则扣
  • MySQL 对字符串使用 STR_TO_DATE() 函数

    Ptw cwl 前面我们利用 date formate 函数 按照自己希望的格式来输出日期时间 我们从用户界面接收到的信息都是以字符串的形式在进行传递 如何把字符串转换为日期类型进行存储呢 可使用 str to date 函数 把字符串转换
  • 【Ardunio小车】智能小车组装

    一 材料和工具 原智能小车底盘 电机 电池槽 5号电池 残缺一角的2WD V15智能小车底板 电机驱动板 ardunio板 剪钳 二 过程 1 用剪钳把残缺的底板剪规整 2 将长脚螺丝固定在原底盘上 3 在长脚螺丝上加上螺帽 4 找到合适的
  • 罗技鼠标 MM Mx Master 2 掉帧的一种解决方法

    入手MM已经月余了 不得不说这是MAC下的相当有力的助手 但是这几天发现掉帧严重 要不就卡 要不就飞 网上说需要调整蓝牙和wifi 的服务顺序 我也调整了 无效 忽然发现蓝牙设备里面有两个 MM 链接 因为MM可以同时接三个设备 而我不知道
  • TS实现原生数组方法之slice()

    function slice description 返回一个新的数组对象 这一对象是一个由 begin 和 end 决定的原数组的浅拷贝 不改变原数组 param begin 可选参数 提取起始处的索引 省略则默认为0 param end
  • sharepoint 2013 部署步骤“添加解决方案”中出现错误: 已在此服务器场中安装 ID 为{guid}的功能。请使用强制属性显式地重新安装此功能。

    在部署sharepoint 2013解决方案wsp包时 出现一个错误 部署步骤 添加解决方案 中出现错误 已在此服务器场中安装 ID 为 735efe4e 8b50 4310 b588 c6ae2ba0759f 的功能 请使用强制属性显式地
  • 线性动归1---数字三角形及动归模型

    学习目标 1 了解动归 2 能用动归解决的条件 3 使用动归解题的一般步骤 学习内容 一 数字三角形1 0 题目描述 观察下面的数字金字塔 写一个程序查找从最高点到底部任意处结束的路径 使路径经过数字的和最大 每一步可以从当前点走到左下方的
  • Python数据分析复习整理(综合应用)

    数据分析 指使用适当的统计分析方法对搜集来的大量数据进行分析 提取有用信息并形成结论 从而对数据进行更加详细的研究和概括总结的过程 数组转置 数据转置是数组重塑的一种特殊形式 哑变量 又称虚拟变量 是用以反映质的属性的一种人工变量 是量化了