数据分析基础之《pandas(7)—高级处理2》

四、合并

如果数据由多张表组成,那么有时候需要将不同的内容合并在一起分析

1、先回忆下numpy中如何合并
水平拼接
    np.hstack()
竖直拼接
    np.vstack()
两个都能实现
    np.concatenate((a, b), axis=)

2、pd.concat([data1, data2], axis=1)
按照行或者列进行合并,axis=0为列索引,axis=1为行索引

将刚才处理好的one-hot编码与原数据合并

# pd.concat实现合并
# 原始数据
stock.head()# one-hot编码处理好的数据
stock_change.head()pd.concat([stock, stock_change], axis=1)# 如果强行按照列索引拼接
pd.concat([stock_change, stock], axis=0)

3、pd.merge(left, right, how="inner", on=[索引])
说明:
left:左表
right:右表
how:如何合并,left左连接,right右连接,inner内连接,outer外连接
on:按什么字段

五、交叉表与透视表

1、交叉表与透视表有什么作用
找到、探索两个变量之间的关系

2、交叉表
交叉表用于计算一列数据对于另外一列数据的分组个数(寻找两个列之间的关系)
pd.crosstab(value1, value2)

# 交叉表
# 星期数和涨跌幅之间的关系
# pd.crosstab(星期数据列, 涨跌幅数据列)# 准备星期数据列
date = pd.to_datetime(stock.index)date# stock加上星期一列
stock["week"] = date.weekdaystock# 准备涨跌幅数据列
stock["pona"] = np.where(stock["p_change"] > 0, 1, 0)stock# 调用交叉表
data = pd.crosstab(stock["week"], stock["pona"])data# 将频数转成百分比
data.div(data.sum(axis=1), axis=0)# 画图
data.div(data.sum(axis=1), axis=0).plot(kind="bar", stacked=True)

3、透视表
使用透视表,刚才的过程更加简单
pivot_table([数据字段], index=[分组字段])

# 透视表
# 对pona字段,用week来分组
stock.pivot_table(["pona"], index=["week"])

六、分组与聚合

分组与聚合通常是分析数据的一种方式,通常与一些统计函数一起使用,查看数据的分组情况
刚才的交叉表与透视表也有分组的功能,所以算是分组的一种形式,只不过他们主要是计算次数或者计算比例!!

1、什么是分组与聚合
分组:group by
聚合:通常是统计函数

2、分组与聚合API
(1)DataFrame.groupby(by=, as_index=False)
说明:
by:分组的列数据,可以多个

(2)Series.groupby()
用法和DataFrame.groupby类似

# 进行分组,对颜色分组,price1进行聚合
# 用dataframe的方法进行分组
col.groupby(by="color")["price1"].max()# 使用series进行分组
col["price1"].groupby(col["color"]).max()

3、星巴克零售店铺数据案例
想知道美国的星巴克数量和中国的哪个多,或者想知道中国每个省份星巴克的数量的情况

# 星巴克零售店铺数据案例
starbucks = pd.read_csv("./directory.csv")starbucks# 按照国家分组,求出每个国家的星巴克零售店数量
starbucks.groupby("Country").count()["Brand"].sort_values(ascending=False)[:10].plot(kind="bar", figsize=(20, 8), fontsize=20)

# 加入省市一起分组
starbucks.groupby(by = ["Country", "State/Province"]).count()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/677741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猜猜谁是凶手?

目录 一、题目二、思路三、完整代码 一、题目 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。 以下为4个嫌疑犯的供词: A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了…

List stream的9种常用功能

1、List 转List List llla Arrays.asList(“1”,“2”).stream().map(Long::parseLong).collect(Collectors.toList()); 2、List转类型List、List、List //(1)、List中的String属性转List List userNameList list.stream().map(UserInfo::getUserName…

Linux系统基础 03 IP地址虚拟网络、Linux软件包管理、ssh服务、apache服务和samba服务的简单搭建

文章目录 一、IP地址虚拟网络二、Linux软件包管理1、rpm包管理器2、yum包管理器3、源码安装 三、ssh服务四、apache服务五、samba服务 一、IP地址虚拟网络 1、IP地址格式是点分十进制,例:172.16.45.10。即4段8位二进制 2、IP地址分为网络位和主机位。网…

杨辉三角的变形(数学)

题目 import java.util.Scanner;public class Main {public static void main(String[] args) { // 1 // 1 1 1 // 1 2 3 2 1 // 1 3 6 7 6 3 1 // 1 4 10 16 19 16 10 4 1Scanner sc new Scanner(System.in);int n sc.nextInt();int[][] res new int[n1][2*n];for(i…

94 . 二叉树的中序遍历 -- 2024.2.10 LeetCode每日一题

链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路 : 采取递归的方式&#xff0c;中序遍历的顺序是左中右&#xff0c;然后模拟即可; 代码 class Solution { public:void transfer(TreeNode* cur , vector<int>& vec){if(cur …

【Linux】构建模块

&#x1f525;博客主页&#xff1a;PannLZ &#x1f38b;系列专栏&#xff1a;《Linux系统之路》 &#x1f94a;不要让自己再留有遗憾&#xff0c;加油吧&#xff01; 文章目录 构建第一个模块1模块的makefile2内核树内构建3内核树外构建 构建第一个模块 可以在两个地方构建模…

Spring Boot 笔记 005 环境搭建

1.1 创建数据库和表&#xff08;略&#xff09; 2.1 创建Maven工程 2.2 补齐resource文件夹和application.yml文件 2.3 porn.xml中引入web,mybatis,mysql等依赖 2.3.1 引入springboot parent 2.3.2 删除junit 依赖--不能删&#xff0c;删了会报错 2.3.3 引入spring web依赖…

【十四】【C++】list 的常见用法

list 的初始化和遍历 /*list的初始化和遍历*/ #if 1 #include <list> #include <vector> #include <iostream> #include<algorithm> using namespace std;void TestList1(){list<int> L1;list<int> L2(10, 5);vector<int> v{1,2,3,4…

IP地址详解

IP地址是互联网协议&#xff08;Internet Protocol&#xff09;用于标识并定位网络中主机&#xff08;如计算机、服务器、路由器等&#xff09;的一串数字。它是一个32位的二进制数&#xff0c;通常以四个数字&#xff08;每个数字范围为0-255&#xff09;的形式显示&#xff0…

Linux之umask的使用

一、umask的作用 umask值用于设置用户在创建新文件和目录时的默认权限。umask值一共有4组数字&#xff0c;其中第1组数字用于定义特殊权限&#xff0c;一般不关心&#xff0c;日常工作中大家用的更多的是后面三组数字。以下图为例&#xff0c;输入“umask”命令之后&#xff0c…

音视频/流媒体协议和编码汇总

一、流媒体协议 1. RTMP/RTMPT/RTMPS/RTMPE 等多变种 是应用层协议&#xff0c;使用TCP作为底层传输协议&#xff0c;并提供了低延迟、高带宽利用率和实时性的特点。 (1)RTMP协议是Adobe的私有协议,未完全公开 (2)一般传输的是 flv&#xff0c;f4v 格式流 2. RTP/RTCP/SRTP …

Maven进阶

一、分模块开发与设计 1. 分模块开发的意义 问题导入 分模块开发对工程有什么好处&#xff1f; 模块拆分原则 目的&#xff1a;项目的扩展性变强了&#xff0c;方便其他项目引用相同的功能。 将原始模块按照功能拆分成若干个子模块&#xff0c;方便模块间的相互调用&#…

AI新工具(20240210) Osam - Osam是一个启用本地运行的开源llm;Whishper - Whishper是一个开源的语音工具

Osam - Osam是一个启用本地运行的开源“一切分割”模型工具&#xff0c;支持多种接口和自定义视觉模型。 Osam是一个开源工具&#xff0c;它允许本地运行“可对任何内容进行分割”的模型(Segment-Anything Models)&#xff0c;灵感来源于Ollama。使用Osam&#xff0c;用户可以…

Lua Global环境

Lua的全局变量实际上是用environment这个表来存储所有的全局变量&#xff0c;其优点就是简化了lua的内部实现&#xff0c;而且还能像其他类型的表一样去操作这个全局表。 _G Lua将environment本身存储在全局变量_G中&#xff0c;其中_G._G _G。如若感兴趣&#xff0c;可以直…

每日OJ题_位运算③_力扣面试题 01.01. 判定字符是否唯一

目录 力扣面试题 01.01. 判定字符是否唯一 解析代码 力扣面试题 01.01. 判定字符是否唯一 面试题 01.01. 判定字符是否唯一 难度 简单 实现一个算法&#xff0c;确定一个字符串 s 的所有字符是否全都不同。 示例 1&#xff1a; 输入: s "leetcode" 输出: f…

Open CASCADE学习|2个TCL命令转C++

1、torus aTorus 10 2 该命令的实现代码为&#xff1a; static Standard_Integer anasurface (Draw_Interpretor& ,Standard_Integer n, const char** a) {if (n < 2) return 1;gp_Ax3 loc; ​Standard_Integer i; ​if (n < 5) {loc gp_Ax3(gp_Pnt(0,0,0),gp_Di…

结构体的大小以及内存对齐问题

结构体的大小怎么计算&#xff1f;什么是结构体的对齐&#xff1f; 首先想要直到结构体的大小需要先了解结构体的内存对齐。那么&#xff0c;什么是结构体的内存对齐&#xff1a; 什么是结构体内存对齐 结构体的对齐 就是 结构体类型数据在内存中按照一定的对齐规律储存。结…

【深度学习:MPT-30B】提高开源基础模型的标准

【深度学习&#xff1a;MPT-30B】提高开源基础模型的标准 MPT-30B家族MPT-30B (Base)MPT-30B-InstructMPT-30B-Chat使用 MosaicML Inference 部署 MPT-30B 模型通过 MosaicML 培训定制 MPT-30BLLM Foundry 下一步是什么&#xff1f; 附录致谢数据MPT-30B 8k 上下文窗口微调数据…

Shell之sed

sed是什么 Linux sed 命令是利用脚本来处理文本文件。 可依照脚本的指令来处理、编辑文本文件。主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 sed命令详解 语法 sed [-hnV][-e <script>][-f<script文件>][文本文件] sed [-nefr] [动作…

探索C语言的内存魔法:动态内存管理解析

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C语言学习 贝蒂的主页&#xff1a;Betty‘s blog 1. 静态开辟内存 通过前面的学习&#xff0c;我们已经掌握了两种开辟内存的方…