Python数据分析复习整理(综合应用)
数据分析
指使用适当的统计分析方法对搜集来的大量数据进行分析,提取有用信息并形成结论,从而对数据进行更加详细的研究和概括总结的过程。
数组转置
数据转置是数组重塑的一种特殊形式。
哑变量
又称虚拟变量,是用以反映质的属性的一种人工变量,是量化了的质变量,通常取值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 |
- 使用DataFrame创建这两组数据。
- 对A组中的缺失值进行填充,填充方向为时间填充。
- 合并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 2A 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 |
- 根据年级信息为分组键,对学生信息进行分组,并输出大一学生信息。
- 分别计算四个年级中身高最高的同学。
- 计算大一学生与大三学生的平均体重。
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
Python数据分析复习整理(综合应用)相关推荐
- Python数据分析复习整理(Pandas)
Pandas 1.Series Series是一种一维数组 import pandas as pd # 通过列表创建Series list1 = [1,-2,3,-4] obj = pd.Series ...
- Python数据分析复习整理(numpy)
numpy import numpy as np 创建多维数组 # 使用列表创建ndarray数组 data = [1,3,5,7] array = np.array(data) array arra ...
- 如何自学python数据分析-良心整理!学习Python数据分析的正确姿势
学习 Python 数据分析的正确姿势 如果你是通过学习给程序员设计的 Python 课程来学习 Python 数据分析,那就大错特错了.很多数据分析师在开始学习 Python 数据分析之前就被引导学 ...
- python柱状图加百分比_关于Python数据分析进行整理柱状图加百分比
问题分析 Python数据分析作为现在时兴的技术,有着以下几种优势: 1.面向对象语言.(相对于面向过程的语言拥有可维护性.可读性) 2.强大的标准库,代码量极少. 3.海量第三方模块 在这里我们使用 ...
- python数据分析、整理、汇总展示_python-数据分析与展示(Numpy、matplotlib、pandas)---2...
笔记内容整理自mooc上北京理工大学嵩天老师python系列课程数据分析与展示,本人小白一枚,如有不对,多加指正 1.python自带的图像库PIL 1.1常用API Image.open() Ima ...
- python数据分析知识整理_Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上)...
原标题:Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上) TK | 作者 LearnKu | 翻译 https://www.freecodecamp.org/news/learn ...
- python数据分析考点_零基础30天入门python数据分析|知识点整理
-某编程大学本硕 -立志成为独当一面的数据分析喵 -关注我
- 【Python数据分析与可视化】期末复习笔记整理(不挂科)
[Python数据分析与可视化]期末复习笔记 1. 数据分析与可视化概述 对比 概念 常用工具 Python常用类库 Jupyter notebook中的常用快捷方式 2. Python编程基础 co ...
- python常用命令汇总-python数据分析之pandas常用命令整理
原标题:python数据分析之pandas常用命令整理 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型 ,提供了高效地 ...
最新文章
- Array.prototype.map() 、 Array.prototype.reduce()、Array.prototype.filter()
- Windows Server 2008 R2 之十七WDS(部署服务)之一
- 2020年春季学期信号与系统课程作业参考答案-第十四次作业
- C#温故而知新学习系列之.NET框架高级特性—概述.NET框架中的反射(一)
- Visual Studio中的TabControl控件的用法
- python 数据库的Connection、Cursor两大对象
- 身份证被盗用申请信用卡,造成逾期被催收怎么办?
- Java 9和应用程序性能监视的激动人心之处
- 格灵深瞳发起 AI · 爱 算法 在线编程挑战赛
- bootstrap分割式下拉菜单显示不全
- CodeForces888E Maximum Subsequence(折半枚举+two-pointers)
- 从零学Java目录导航
- VMware虚拟机安装操作系统方法
- JAVA 使用aspose.cad将dwg文件转PDF(每个布局转为一页)
- xdoj-81-字符串查找
- java 获取某一天的起始时间
- 英语时态:一般、否定疑问句、现表将来(中文练到无停顿)
- python_path
- Hive元数据信息获取
- 关于前端隐藏元素的问题
热门文章
- IE9上传文件出现“SCRIPT5: 拒绝访问”导致不能上传的解决办法
- 2022年全球市场重型车床卡盘总体规模、主要生产商、主要地区、产品和应用细分研究报告
- 2023年甘肃省职业院校技能大赛高职组“信息安全管理与评估”赛项样卷B
- Ceph client上配置RBD log
- CAD外部参照是什么?最全CAD外部参照攻略!
- WiFi探针测试MAC地址获取信息
- 《Spark商业案例与性能调优实战100课》第19课:商业案例之NBA篮球运动员大数据分析核心业务逻辑代码实战
- android device id 获取主要用于google 服务
- 同时连接了无线和有线,如何查看当前连接的是哪个
- uni-app仿抖音评论列表