数据分析--pandas 处理结构化数据

简介: 数据分析--pandas 处理结构化数据

基本数据结构


Series


类似于一维数组于字典的结合,是一个 有索引的一维数组。

values 一组数据(ndarray类型)

index 相关数据索引标签 用来显示索引 显示索引可以增加Series的可读性


Series对象的创建

索引可以选择性的输入

左侧为索引,右侧为值


96b9cba4ec23437c90047eacc4ad523f.png

通过字典创建Series对象


db9458747c7c468e9e969fd9b296ddab.png


Series对象的访问

通过iloc函数和loc函数直接访问,

通过类似于数组和属性的方式进行访问


3f2ffc42854e4903b7f714bce839ce3e.png


Series对象的操作

NumPy对ndarray对象进行的操作,对Series对象同同样可以。由于有索引的存在,在操作中存在索引对其的问题

Series对象的属性

索引 index

值 values


DataFrame


DataFrrame是一个表格型的数据结构,DataFrame由按一定顺序排列的多列数据组成,设计初衷是将Series的使用场景从一维拓展到多维,DataFrame既有行索引,也有列索引


行索引:index

列索引:columns

值 values

DataFrame的创建

创建DataFrame对象时可以接受多种输入包括一维的ndarray对象、列表、字典、Series对象的字典,二维的ndarray对象、Series对象,或者其他DataFrame,行索引,列索引可以通过index、columns参数指定,若没有名确的给出,则会设置默认值

通过值为列表的字典进创建DataFrame


e19f855814cf4882ace629d47d09da67.png


使用columns参数指定为列索引


0dc868b1000946c2b72d899c425ee8dc.png

DataFrame对象的columns、index、values属性


96f4ba6bf48f47209643925802eba2c7.png


通过值为Series对象的字典创建DataFrame对象

每一个Series为一列,

若不指定index。则所有Series对象的index属性的并集作为DataFrame的index。若某一个Series种不存在对应的index则赋值NaN;

若指定index,则会与指定索引相匹配,不能匹配的索引对应的值被标记为NaN


4e76bfd5cdca441ba29d1e451d36a585.png


通过元素为字典的列表创建DataFrame对象

每一个字典作为一列,键作为列名,键不存在色值设为NaN,若不指定index。则index为默认值


14e3bf125a824343874ed4c2c77c37a8.png


通过Series对象创建DataFrame对象

一个Series一列,name为其列名


55342333168047509ddff9917513b21c.png


DataFrame对象的访问

  • iloc 通过隐式索引取行
  • loc通过显示索引取行


714493f1ecdd4900b77cb16095d61dab.png

  • 直接通过列索引对DataFrame对象进行操作

直接取指定元素,第一个参数为行,第二个参数为列


deb3d2dae9184e5898b81533cd642c01.png

切片


9e69022ff09a46fa8ee8f1c22c07aa23.png


删除操作


# drop操作 对行或列进行删除操作,默认axis=0,表示对行进行操作,axis=1 表示对列进行操作,是否改变原数据根据inplace的参数,True或False
df = pd.DataFrame(np.random.randn(4,5),columns=list('ABCDE'),index=range(1,5))
df
df.drop(['A'],axis=1)  # 删除第一列,不改变原数据
df.drop(['A'],axis=1,inplace=True)    # 删除第一列,改变原数据
# del操作,对列进行删除操作
del df['B']
# pop操作,进行删除列的操作,并以Series对象返回被删除的列
column_B = df.pop('B')


基于pandas的index对象访问操作


pandas的index对象包括Series的index和DataFrame的index和columns


pandas的index对象


pandas中的Index对象负责管理轴标签和其他元素

Index对象的特性:不可修改性,有序性,可切片

不可修改性,能够保证在多个数据结构间的安全共享


索引的不同访问方式

调用方式


loc函数 显示索引

loc的访问方式是基于标签(label)的,包括行标签(index),列表签(columns),

表达式df.loc[index._argument<,col_argument>],首先是选择行,列可以省略

输入的参数可以是,单个标签,标签数组,或者标签的分片形式,布尔值组、接受参数为调用loc函数的对象的回调函数

iloc函数方式 隐式索引

iloc关注的是index的位置,用法和loc类似

输入的参数可以是单个整数,数组,位置的切片,布尔值数组接受参数为调用loc函数的对象的回调函数

类似字典方式的访问

可以直接将Series对象和DataFrame对象看作一个字典,而DataFarme对象相当于每一个元素都是Series对象的字典,所以可以用类似访问字典的方法进行访问

类似访问属性的方式

接受的参数类型有 单个变量、数组、布尔值类型数组或者回调函数


调用方式间的区别


loc函数与iloc函数的区别

都是对index的访问

loc接受的是Index对象(index和columns)的标签 显示

iloc结束的是Index对象(index和columns)的位置 隐式

通过loc函数和通过切片操作[]访问的区别

loc和切片操作都是基于标签的索引

loc函数首先对行标签(index)进行访问

切片操作是先对列标签(columns)的访问

两者在Series中没有差别


特殊参数类型


输入为布尔类型数组

输入为回调函数


数学统计和计算工具

统计函数,协方差、相关系数、排序


协方差协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。


cov函数:计算协方差,可以计算Series对象和另一个Series对象的协方差


495a5423507f47d38c473cab8dbbfd5a.png


DataFrame提供的cov函数,可以计算DataFrame对象各个列之间的协方差,得到一个协方差矩阵,当DataFrame对象中出现NaN,函数会排除它继续进行计算

协方差矩阵是一个对称矩阵


d59f7d3e8b8d439b9e2ab578deb0b929.png


有个空值得情况


ebf63a26ea3b44eb8a3cb9ddbd7023eb.png


相关系数

皮尔森相关系数

斯皮尔曼相关系数

肯德尔相关系数


窗口函数


Rolling对象

产生的是定长的窗口,需要通过参数window指定窗口大小,

通过参数指定窗口最小非NaN值的个数


Expanding对象

产生的是扩展窗口,第i个窗口的大小为i,可以将其看做特殊的window为数据长度、min_periods为1的Rolling对象·


EWM对象

产生的是加权窗口,其中需要定义衰减因子a

有很多定义衰减因子的方法。时间间隔、质心、指数权重减少到一半需要的时间,或者直接定义


数学聚合和分组运算


group by 包括三个阶段,

  • split阶段,通过一些原则将数据分组
  • apply阶段 每一个分组分别执行一个函数,产生一个新值
  • combine阶段 将各组的结果合并并分配到最终对象


agg函数的聚合操作


通过使用GroupBy对象的agg函数实现自定义函数,


d66bee0799d34bd9a06f69cf8dbf152e.png

通过agg函数还可以实现一次性应用多个函数,

3e90083153db4944a015b11f7acf20e6.png

通过agg函数还可以实现对不同列使用不同的函数

6a5fafb750484bf88d05092b13a5da74.png



transform函数的转换操作


将一个函数应用到每一个分组内,返回的结果长度和宽度和原来的数据长度相同,而不是每一个组只有一个结果

如果该函数作用于每一个组,计算得到的是一个标量,则它会被广播出去,使每一个组的成员得到相同的值


fabfb5e9188845d580fbf34d4a099e3a.png

transform函数的自定义函数

30803343bf0748e5afcff81dbab2564f.png

apply函数的一般操作


agg函数和transform函可以通过某些约束自定定义函数对GroupBy对象进行操作,有些 操作不符合这两类的约束,

apply函数将数据对象分成多个组,然后对每个组调用传入的函数,最后将其组合到一起

37ad193029984e71801e374ca8f5482c.png






相关文章
|
1月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
300 0
|
4月前
|
自然语言处理 数据挖掘 数据处理
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
本文将介绍 10 个在数据处理中至关重要的 Pandas 技术模式。这些模式能够显著减少调试时间,提升代码的可维护性,并构建更加清晰的数据处理流水线。
185 3
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
|
4月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
6月前
|
数据采集 安全 数据挖掘
Pandas数据合并:10种高效连接技巧与常见问题
在数据分析中,数据合并是常见且关键的步骤。本文针对合并来自多个来源的数据集时可能遇到的问题,如列丢失、重复记录等,提供系统解决方案。基于对超1000个复杂数据集的分析经验,总结了10种关键技术,涵盖Pandas库中`merge`和`join`函数的使用方法。内容包括基本合并、左连接、右连接、外连接、基于索引连接、多键合并、数据拼接、交叉连接、后缀管理和合并验证等场景。通过实际案例与技术原理解析,帮助用户高效准确地完成数据整合任务,提升数据分析效率。
574 13
Pandas数据合并:10种高效连接技巧与常见问题
|
3月前
|
SQL 数据挖掘 BI
数据分析的尽头,是跳出数据看数据!
当前许多企业在数据分析上投入大量资源,却常陷入“数据越看越细,业务越看越虚”的困境。报表繁杂、指标众多,但决策难、行动少,分析流于形式。真正有价值的数据分析,不在于图表多漂亮,而在于能否带来洞察、推动决策、指导行动。本文探讨如何跳出数据、回归业务场景,实现数据驱动的有效落地。
|
9月前
|
监控 物联网 数据处理
Pandas高级数据处理:数据流式计算
本文介绍了如何使用 Pandas 进行流式数据处理。流式计算能够实时处理不断流入的数据,适用于金融交易、物联网监控等场景。Pandas 虽然主要用于批处理,但通过分块读取文件、增量更新 DataFrame 和使用生成器等方式,也能实现简单的流式计算。文章还详细讨论了内存溢出、数据类型不一致、数据丢失或重复及性能瓶颈等常见问题的解决方案,并建议在处理大规模数据时使用专门的流式计算框架。
535 100
Pandas高级数据处理:数据流式计算
|
9月前
|
SQL 人工智能 数据可视化
数据团队必读:智能数据分析文档(DataV Note)五种高效工作模式
数据项目复杂,涉及代码、数据、运行环境等多部分。随着AI发展,数据科学团队面临挑战。协作式数据文档(如阿里云DataV Note)成为提升效率的关键工具。它支持跨角色协同、异构数据处理、多语言分析及高效沟通,帮助创建知识库,实现可重现的数据科学过程,并通过一键分享报告促进数据驱动决策。未来,大模型AI将进一步增强其功能,如智能绘图、总结探索、NLP2SQL/Python和AutoReport,为数据分析带来更多可能。
542 142
|
10月前
|
SQL 数据可视化 大数据
从数据小白到大数据达人:一步步成为数据分析专家
从数据小白到大数据达人:一步步成为数据分析专家
555 92
|
9月前
|
数据采集 数据可视化 数据处理
Pandas高级数据处理:数据仪表板制作
《Pandas高级数据处理:数据仪表板制作》涵盖数据清洗、聚合、时间序列处理等技巧,解决常见错误如KeyError和内存溢出。通过多源数据整合、动态数据透视及可视化准备,结合性能优化与最佳实践,助你构建响应快速、数据精准的商业级数据仪表板。适合希望提升数据分析能力的开发者。
237 31
|
9月前
|
缓存 数据可视化 BI
Pandas高级数据处理:数据仪表板制作
在数据分析中,面对庞大、多维度的数据集(如销售记录、用户行为日志),直接查看原始数据难以快速抓住重点。传统展示方式(如Excel表格)缺乏交互性和动态性,影响决策效率。为此,我们利用Python的Pandas库构建数据仪表板,具备数据聚合筛选、可视化图表生成和性能优化功能,帮助业务人员直观分析不同品类商品销量分布、省份销售额排名及日均订单量变化趋势,提升数据洞察力与决策效率。
190 12

热门文章

最新文章