数据分析 | 整合数据

news/2024/7/6 6:48:28/文章来源:https://www.cnblogs.com/abloger/p/18272936

拼接与合并
1. 纵向或横向拼接:pd.concat()


# 纵向拼接,在函数中放入列表,里面是想拼接的两个df
# 如果列名一致,直接对齐;如果列名不一致,则各列都会保留,空值为NaN
pd.concat([df1, df2], ignore_index = True)   # >>> 此时索引是各自保留的,所以要忽略索引,重新排序# 横向拼接,需要指定轴
pd.concat([df3, df4], axis = 1)

2. 数据合并:pd.merge(表1,表2, on = 用来合并的列/[多个列],how = inner/outer/left/right)
可以存在列名不同的情况


# 应用场景:用于根据某列来合并两张不同的表(比如根据客户ID,来合并订单和顾客信息表)
pd.merge(customer_info, order_table on = 'customer_ID')# 想要同时根据客户ID和订单日期来合并
pd.merge(customer_info, order_table on = ['customer_ID', 'date'])# 如果想要合并的两张表中,列名不相同,比如一张表中管客户身份叫【客户ID】,另一张表中叫【客户编号】
pd.merge(order_df3,customer_df3,left_on=['客户编号','订单日期'],right_on=['客户ID','交易日期']# 如果两张表的列名相同,但是只想指定其中一列进行合并,也是可以的,剩下的列依然都保留,并且会自动添加后缀_x , _y进行区分。如果想自己指定后缀,则用参数suffixes
pd.merge(df7,df8,on = ["日期","店铺"],suffixes=["_df7","_df8"])# how参数详解(和mysql的连表相似)
inner:只合并左右表都有匹配的值,最终结果也只有这几行
outer:保留所有值,如果匹配不上,用NaN填充
left:保留左边表的所有值,如果匹配不上,用NaN填充
right:保留右边表的所有值,如果匹配不上,用NaN填充

3. 根据索引进行合并:表1.join(表2,how = ,lsuffix = ,rsuffix = )


这个函数直接根据索引来合并,但是如果两张表中存在相同列名的列,那么就需要用lsuffix和rsuffix来指定左右两边表重名列的后缀

分组聚合
1. 分组运算:df.groupby(想分组的列名)[分组后需要计算的列名].mean()等聚合函数

点击查看代码
应用场景:有些表格计算需要先分组后再运算,可以先用groupby根据某列进行分组,然后提取出想要计算的其他列,通过sum、mean、min、max等聚合函数运算即可运行了df.groupby(想分组的列名),得到的实际是一个dataframe groupby实例,但这个实例无法直接展示,它可以理解为就变成了,比如按部门分组,来计算成员平均年龄,原本数据是一行一个成员信息,那么分组后,一行表示同一个部门的多个成员信息如果不想这样,可以直接reset_index,这样层次化的分组索引就又变成一行一个了

上图这里中间两步骤是演示,实际并不会得到

2. 数据聚合——透视表:pd.pivot_table(df, index = )

点击查看代码

# 所谓聚合函数,就是传入一堆数据得到一个数据,就是把数据聚起来计算了# 把df的分店编号和时间段作为索引(新的行标签),商品类别作为列(按照商品类别列的值,重新分列),计算销售额的总和
pivot_table = pd.pivot_table(df, index=["分店编号", "时间段"], columns="商品类别", values="销售额", aggfunc=np.sum)# 这个代码的意思是:
pd.pivot_table(): 调用Pandas的pivot_table函数来创建一个透视表。
df: 这是您想要从中创建透视表的DataFrame。
index=["分店编号", "时间段"]: 这指定了透视表的行标签。每个唯一的“分店编号”和“时间段”组合将成为一个新的行。
columns="商品类别": 这指定了透视表的列标签。每个唯一的“商品类别”将成为一个新的列。
values="销售额": 这指定了您想要聚合的数值列。在此例中,您想要计算每个分店、每个时间段、每个商品类别的“销售额”总和。
aggfunc=np.sum: 这指定了用于聚合数据的函数。在这里,您使用了NumPy的sum函数来计算每个组合(分店编号、时间段、商品类别)的“销售额”总和。这里之所以pandas可以使用np的函数,因为pandas其实底层就是numpy

3. 区间分组:pd.cut(对象列,bins = 【分组标准,labels = [分组后叫什么])

点击查看代码
# bins 是分组的标准,列表左闭右开
比如是年龄分组的话,可以【0, 30, 40, 50, 60 ,120】, 这里的意思就是分组按0至三十岁,三十至四十岁,四十至五十岁,五十至六十岁,六十至一百二十岁分组。# labels 是分组后的抬头
比如按【0, 30, 40, 50, 60 ,120】分的组,可以对应叫【青年组、壮年组、中老年组、老年组、退休组】,进行命名这样的分类后,再搭配groupby进行聚合运算会更方便

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

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

相关文章

DCT-Net - 一键图片、视频转卡通动漫风格工具,本地一键整合包下载

只需要输入一张人物图像或者一段视频,就可以实现端到端全图卡、视频通化转换,生成二次元虚拟形象,返回卡通化后的结果图像或视频。 开发者叫menyi Fang,来自阿里巴巴通义实验室的的技术女大佬,国内大佬集成到webui,支持CPU和GPU,CPU处理速度也很快,需要的可以自行下载测…

ProPainter – AI视频去水印工具,可以去除视频中的静态水印、动态物体/人物等 本地一键整合包下载

ProPainter是一个基于E2FGVI实现的AI视频编辑工具,它可以一键移除视频内的移动物体和水印。这个开源项目提供了一个简单而强大的解决方案,帮助用户轻松编辑和改善视频内容。项目地址:https://github.com/sczhou/ProPainter 一键整合包下载:https://deepface.cc/thread-254-…

Rocky Linux捣鼓记录(六):JDK安装、配置环境变量

一、下载 A方法:我们可以直接去oracle官网下载jdk17安装包,直接安装,安装完会生成JDK主目录在/usr/lib/jvm/jdk-17-oracle-x64 B方法:su使用root用户操作,创建并进入一个便于管理JDK文件的目录 mkdir /usr/lib/jvm cd /usr/lib/jvm #下载jdk wget https://download.oracle…

川普真会说中文?连嘴型都同步,VideoReTalking AI数字人下载介绍

你能想到这种画面吗?霉霉在节目中用普通话接受采访,特朗普在老家用中文脱口秀,蔡明老师操着一口流利的英文调侃潘长江老师.. 这听起来似乎很魔幻,可如今全部由VideoReTalking实现了 你只需要传入一个视频文件和音频文件,它会生成一个新的视频,在这个视频里,不仅人物的嘴…

QR与DM码的识别

1.QR码与DM码QR码(Quick Response Code)是一种矩阵条码,能够快速被扫描设备识别。它是由日本Denso Wave公司在1994年发明的,用于追踪汽车零件。QR码可以存储更多的数据,并且可以包含文本、URL、图片等信息。QR码的特点是快速识别,因此得名。它们广泛应用于广告、产品追踪…

FFmpeg开发笔记(三十三)分析ZLMediaKit对H.264流的插帧操作

​《FFmpeg开发实战:从零基础到短视频上线》一书的“3.4.3 把原始的H264文件封装为MP4格式”介绍了如何把H.264裸流封装为MP4文件。那么在网络上传输的H.264裸流是怎样被接收端获取视频格式的呢?前文指出H.264流必定以“SPS帧→PPS帧→IDR帧”开头,接下来就来验证是否确实如…

= ERROR [sshd internal] load metadata for docker.io/vulhub/openssh:7.7 问题解决,亲测有效!

出现 ERROR [sshd internal] load metadata for docker.io/vulhub/openssh:7.7 这样的错误通常表示 Docker 客户端在尝试从 Docker Hub(docker.io)上拉取 vulhub/openssh:7.7 这个镜像时,遇到了问题而无法加载该镜像的元数据(metadata)。 我在网上查了原因,大概有一下几个…

第三次博客总结

《第三次博客》 一.家居强电电路模拟程序-3前言: 1>.代码主要功能:本次迭代的代码功能其实设备之间的连接并没有太多的变化,本次迭代的内容主要是并联和并联串 联的处理,这个功能好实现,因为设计好了串联类和并联类,只要设计好存储并联的集合,做好电 压之间赋值关系即…

2024志愿填报

推荐度由上往下,学校课程只教一小部分,就业需根据自己的方向往深处学。 一.河南工程 1.软件工程(智慧电网):属于电气信息工程学院。(可从事软件开发,物联网工程师等岗位) 课程:以课程内容来看比较全面,主要方向是软件及通信。涵盖了从设备-网络-软件-数据,其中MATLA…

大型语言模型如何工作?

引言 本文旨在以浅显易懂的方式,向读者阐释大型语言模型(LLM)的工作原理。 我们首先看一下文档补全引言 本文旨在以浅显易懂的方式,向读者阐释大型语言模型(LLM)的工作原理。 我们首先看一下文档补全器模型的工作原理:user prompt: A banana ismodel response: an elong…

idea配置sftp连接服务器

一、配置本机密钥,用于连接服务器使用 ssh-keygen命令,一路回车,生成公钥ssh-keygen -t rsa 公钥内容保存在:/Users/yf/.ssh/id_rsa下,并且将生成的文件内容复制到服务器的 ~/.ssh/authorized_keys 文件中,然后就可以在本机使用 ssh root@ip 进行连接服务器了二、配置id…

第三次博客作业-家居强电电路模拟程序3-4 blog-3

一、前言:在完成了家具强电电路模拟程序-1与家具强电电路模拟程序-2的基础上,这套家具强电电路模拟程序又经过了两次迭代,我也和解决之前迭代问题一样,先对增加的需求进行分析,然后设计我的程序,最后编写代码。在难度方面,家具强电电路模拟程序-3相对于家具强电电路模拟…

Linux服务器如何测试存储盘性能是否正常?FIO磁盘压测工具的使用详解

fio是一种I/O工具,用于基准测试和压力/硬件验证。它支持19种不同类型的I/O引擎(sync,mmap,libaio,posixaio,SG v3,splice,null,network,syslet,guasi,solarisaio等)针对磁盘的压力性能测试工具有很多,简单的测试可以通过dd命令实现,而比较专业和强大的磁盘IO测试…

(循环序列DP)牛客小白月赛88 D我不是大富翁

题意:思路: 考虑dp,题目显然提到2个状态:位置和操作次数,因此设置dp[i][j]表示在i位置第j次操作是否合法。 易得状态转移方程: dp[(i + a[j]) % n][j] |= dp[i][j - 1]; dp[((i - a[j]) % n + n) % n][j] |= dp[i][j - 1]; code: #include <bits/stdc++.h> #inclu…

题目集7~8的总结性Blog

7~~8次大作业总结 前言 没有了测试点说明,真是非常的艰难,不知道有什么情况,也不知道哪里的答案错了,就很难找,也很难做出修改。测试样例也是,数量不多,情况不多,特别是最后一次的,测试样例也没错,试了几种情况,都没错,也不知道是哪里错了,最后就不了了之了。 第七…

Python用PyMC3实现贝叶斯线性回归模型

原文链接:http://tecdat.cn/?p=5263 原文出处:拓端数据部落公众号在本文中,我们将在贝叶斯框架中引入回归建模,并使用PyMC3 MCMC库进行推理。 我们将首先回顾经典频率论的多重线性回归方法。然后讨论贝叶斯如何考虑线性回归。 用PyMC3进行贝叶斯线性回归 在本节中,我们将…

SPSS用K均值聚类KMEANS、决策树、逻辑回归和T检验研究通勤出行交通方式选择的影响因素调查数据分析|附代码数据

原文下载链接:http://tecdat.cn/?p=27587 最近我们被客户要求撰写关于通勤出行的研究报告,包括一些图形和统计输出。 某交通工程专业博士生想要研究不同因素对通勤交通方式选择的影响,对成都两个大型小区(高端和普通)居民分别进行了出行调查,各调查了300人 其中 Distanc…

【专题】2024全国主要城市工业互联网发展指数报告合集PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p=36590 原文出处:拓端数据部落公众号 《报告合集》详细分析了全国工业互联网主要城市的产业发展特征,揭示出这些城市在互联网产业上表现出较高水平。据工信部等部门发布的2023年度数据,这些主要城市汇聚了全国94%的双跨平台、92.3%的大数据产…