百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

面对一堆数据,你要怎么做——python数据合并、重塑和清理

bigegpt 2024-10-12 05:01 12 浏览

数据的清理、转换、合并和重塑是数据分析与挖掘的基础工作,而且常常消耗了分析人员大部分的时间,本文将介绍pandas的核心函数如何帮助分析人员进行数据规整工作。

一、数据的重排

1、合并数据集

多个数据集的合并是我们经常遇到的数据规整工作,例如各种类型商品在不同渠道的销售数据需要按照渠道进行汇总,各子公司每个月的财务数据需要按照月份进行汇总,这里边主要用到以下4个函数:

函数参数说明
pandas.merge()Left, right, how ,on, left_on, right_on, sort, suffixes, copy可根据一个或多个键将DataFrame连接起来
pandas.concat()objs, axis, join, join_axes, keys, levels, names, verify_integrity, ignore_index沿着一个轴将多个对象堆叠到一起
obj1.combile_first(obj2)obj将重复数据编结在一起,用一个对象的值边界另一个对象对缺失值。
np.where()如np.where(pd.innull(a),b,a)If-else逻辑的矢量化形式

下面以官方文档的几个例子简单介绍一下:

示例1:pandas.merge()

示例2:pandas.concat()

2、重塑和轴向旋转

我们常常需要把时间序列的数据按照类别、区域等维度进行重塑,从长格式转变为宽格式,这里边主要涉及3个函数:

函数参数说明
obj.stack()level, dropna, 默认值为level=-1, dropna=True,从最内层开始旋转,过滤缺失值将DataFrame数据的列选装为行,返回Series
obj.unstackLevel, fill_value, 默认值为level=-1, fill_value=None,从最内层开始旋转,不填充缺失值将层次化索引的Series旋转为列,返回DataFrame
pandas.pivot_tableObj, values, index, columns, aggfunc创建层次化索引,并重塑。相当于先set_index,再unstack

示例如下:

示例3:Obj.stack()

示例4:Obj.unstack()

示例5:Pandas.pivot_table()

二、数据的过滤和清理

对数据进行合并或重塑后,就需要对数据的内容进行处理,例如去重、替换或者元素级的转换和计算。

函数参数说明
obj.duplicated()Keep,默认为first,即判定第一次出现对行为true判断是否重复,返回一个布尔型Series
obj.drop_duplicated()keep='first', inplace=False返回一个移除了重复行的DataFrame
obj.map()
接受一个函数或字典型对象,进行元素级转换
obj.replace()Obj.replace(a,b)替换

示例6:map()

三、字符串操作

最后,单独介绍一下Python的字符串和文本处理函数,Python进行字符串操作极其简洁。常用字符串的方法如下所示:

方法说明
count子串在字符串中出现对次数
endswith、startswith字符串以某个后缀(前缀结尾),则返回true
Join将字符串用作连接其它字符串序列的分隔符
index如果在字符串中找到子串,则返回第一个发现的子串第一个字符所在对位置。否则引发valueError
find如果在字符串中找到子串,则返回第一个发现的子串第一个字符所在对位置。否则返回-1
rfind如果在字符串中找到子串,则返回最后一个发现对子串第一个字符所在对位置。否则返回-1
strip、rstrip、istrip去除空白字符或换行符
Split通过指定的分隔符将字符串拆分为一串子串
lower、upper分别将字母转换大小写
Ijust、rjust用空格(或其它字符)填充字符串的空白侧以返回符合最低宽度的字符串。

另外,还有Python的正则表达式功能也是文本处理的利器,主要使用内置对re模块,可以进行模式匹配(compile)、替换(replace)和拆分(split),常用的函数包括findall,match,search等。正则表达式其实可以自成一章,内容较多,此处不再详细介绍。

相关推荐

或者这些Joplin插件也可以帮助你的笔记应用再一次强大

写在前面距离上次分享《搭建私有全平台多端同步笔记,群晖NAS自建JoplinServer服务》已过去一段时间,大家是否开始使用起来了呢?如果你和我一样已经使用过Joplin有一段时间了,那或许你也会...

Three.JS教程4 threejs中的辅助类

一、辅助类简介Three.js提供了一些辅助类(Helpers)以帮助我们更容易地调试、可视化场景中的元素。ArrowHelepr:创建箭头辅助器;AxisHelper:创建坐标轴辅助器;BoxH...

第2章 还记得点、线、面吗(二)(第二章还能敲钟吗)

glbgltf模型(webvrmodel)-gltf模型下载定制,glb模型下载定制,三维项目电商网站在线三维展示,usdz格式,vr模型网,网页VR模型下载,三维模型下载,webgl网页模型下载我...

如何检查Linux系统硬件信息?从CPU到显卡,一网打尽!

你可能会问:“我为什么要关心硬件信息?”答案很简单:硬件是Linux系统的根基,了解它可以帮你解决很多实际问题。比如:性能调优:知道CPU核心数和内存大小,才能更好地调整程序运行参数。故障排查:系统卡...

SpriteJS:图形库造轮子的那些事儿

从2017年到2020年,我花了大约4年的时间,从零到一,实现了一个可切换WebGL和Canvas2D渲染的,跨平台支持浏览器、SSR、小程序,基于DOM结构和支持响应式的,高...

平时积累的FPGA知识点(6)(fpga经典应用100例)

平时在FPGA群聊等积累的FPGA知识点,第六期:1万兆网接口,发三十万包,会出现掉几包的情况,为什么?原因:没做时钟约束,万兆网接口的实现,本质上都是高速serdes,用IP的话,IP会自带约束。...

芯片逻辑调度框架设计 都需要那些那些软件工具

设计芯片逻辑调度框架通常需要使用以下软件工具:1.逻辑设计工具:例如Vivado、Quartus、SynopsysDesignCompiler等,用于设计和实现逻辑电路。2.仿真工具:例如Mo...

ZYNQ与DSP之间EMIF16通信(正点原子领航者zynq之fpga开发指南v3)

本文主要介绍说明XQ6657Z35-EVM高速数据处理评估板ZYNQ与DSP之间EMIF16通信的功能、使用步骤以及各个例程的运行效果。[基于TIKeyStone架构C6000系列TMS320C6...

好课推荐:从零开始大战FPGA(从零开始的冒险4399)

从零开始大战FPGA引子:本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“...

业界第一个真正意义上开源100 Gbps NIC Corundum介绍

来源:内容由「网络交换FPGA」编译自「FCCM2020」,谢谢。FCCM2020在5月4日开始线上举行,对外免费。我们有幸聆听了其中一个有关100G开源NIC的介绍,我们对该文章进行了翻译,并对其中...

高层次综合:解锁FPGA广阔应用的最后一块拼图

我们为什么需要高层次综合高层次综合(High-levelSynthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象级语言描述的电路模型的过程。所谓的高层次语言,包括C、C++...

Xilinx文档编号及其内容索引(部分)

Xilinx文档的数量非常多。即使全职从事FPGA相关工作,没有几年时间不可能对器件特性、应用、注意事项等等有较为全面的了解。本文记录了我自使用Xilinx系列FPGA以来或精读、或翻阅、或查询过的文...

Xilinx Vivado联合Modelsim软件仿真

引言:Xilinx公司Vivado开发软件自带仿真工具,可以实现一般性能的FPGA软件仿真测试,其测试执行效率以及性能都不如第三方专用仿真软件Modelsim强。本文我们介绍下如何进行Vivado20...

体育动画直播是怎么做出来的?从数据到虚拟赛场的科技魔法!

你是否见过这样的比赛直播?没有真实球员,却能看梅西带球突破?足球比赛变成动画版,但数据100%真实?电竞比赛用虚拟形象直播,选手操作实时同步?这就是体育动画直播——一种融合实时数据、游戏引擎和AI的...

Dialogue between CPC and political parties of neighboring countries held in Beijing

BEIJING,May26(Xinhua)--TheCommunistPartyofChina(CPC)inDialoguewithPoliticalPartiesof...