Pandas数据分析基础操作

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 最近出了几期pandas的函数用法和一些数据框操作的讲解文章,感觉效果还行——一些有幸能被推荐,让更多人看到,帮助到一些人的同时,我也收获了许多宝贵的改进建议——欢迎大家继续批评指正,我们一起互相进步。最近有读者反映我的内容中一些常用的基础函数并没有经过讲解,导致“基础教程”并不“基础”。缺乏基础的读者并不能一次性在我的文章里快速学到技巧,因为去找别的教程来看懂我的教程的确浪费精力。因此本期我们补一下pandas基础的操作,包括但不限于:迭代(也有称作遍历循环的,具体请看案例)统计函数排序删除列

最近出了几期pandas的函数用法和一些数据框操作的讲解文章,感觉效果还行——一些有幸能被推荐,让更多人看到,帮助到一些人的同时,我也收获了许多宝贵的改进建议——欢迎大家继续批评指正,我们一起互相进步。

最近有读者反映我的内容中一些常用的基础函数并没有经过讲解,导致“基础教程”并不“基础”。缺乏基础的读者并不能一次性在我的文章里快速学到技巧,因为去找别的教程来看懂我的教程的确浪费精力。

因此本期我们补一下pandas基础的操作,包括但不限于:


迭代(也有称作遍历循环的,具体请看案例)

统计函数

排序

删除列


一、序列与数据框的迭代


事实上,基于python的数据分析通常都希望通过函数完成对多个元素的操作,而避免直接通过python的循环来进行运算:

比如我们需要统计某数据文件中记录的数量,一般不会像底层语言一样,选择用循环去过一遍所有的记录,然后每过一个记录用计数器n=n+1这种方式来获得结果,而是采用len()、sum()或者size()函数来统计(具体选择哪个需要根据情况另外分析)

这主要是考虑到python作为高级脚本语言,循环效率不高,且占用内存和算力较高,运行速度可能比较慢(小数据量感觉不出来),而python提供的海量函数和方法,包括第三方库的函数和方法,通常函数底层都用c实现的循环。底层编译语言的优势大家心知肚明,并且可以相信大佬们用c写出来的工具,一定在内存等细节的调节上“神乎其计”


所以pandas作为一个大数据的第三方库,提供的函数和方法基本上应该覆盖了全部的需求,我们在今后的数据处理上一定要尽可能使用他们,而非自己用python基础语法从头自己写算法。这样处理大数据才效率最高


但是为什么我们还需要学习序列和数据框迭代呢?


显然,有时确实要做一些非常特殊的统计,pandas没有相关的工具提供给我们,必须要通过python进行循环。

或者针对初学者,我们需要用一下循环去遍历输出一下某数据对象,看看其内部结构,便于理解。


1、列迭代:

iteritems()函数用于迭代时快速取出DataFrame中的每列

image.png

如图,iteritems将df转化为了可迭代对象(可用for循环遍历的对象),我们需要取出各个列的数据时,print出迭代变量的第二个元素即可——i[1]

那么i是什么呢?我们探究一下这个可迭代对象内部结构:直接print(i)

image.png

可以看出是一个个元组,元组的第一个元素是列名,第二个元素是索引和列数据一一对应的series序列。


2、行迭代:

iterrows()函数用于快速取出DataFrame中每行:

image.png

本质上和列一样。

这就完成了对数据框的迭代探究,我们可以在有需要的时候迭代(遍历)数据框来查看数据了


3、序列迭代:

同理。只不过序列(series)只能用iteritems()。因为他没有行,只有一列数据。

需要注意的是,series本身也是可以迭代的,但是用iteritems()生成的可迭代对象效率会快一些

image.png

上面是直接迭代,下面是用iteritmes的迭代。数据量小的时候没有明显区别。


二、统计函数


常用的统计函数:

平均(mean)

求和(sum)

最大值(max)

最小值(min)

中位数(median)

方差(var)

标准差(std)

累乘(prod)

均值绝对偏差(mad)

……

除此之外还有pandas的统计集成函数describe():

image.png

以及超好用的自定义统计函数agg():


image.png

具体的由于函数过多,我们会在之后的文章里一一介绍。有兴趣的朋友可以直接自己试试,自己动手印象最深。


三、排序


正如我前面提到的,python的运行效率相对不高,如果一位算法极客到python这里,却用底层语言的“冒泡排序”、“选择排序”、“快速排序”这些算法来手搓大数据,估计效果不尽人意。

事实上,个人感觉python的正解就是调用函数。就拿排序函数而言,其本身是基于c语言的快速排序,不论是速度还是空间复杂度,绝对快于你手写嵌套循环的冒泡或选择排序。

pandas处理大数据时也是如此,我们有sort_values()用于给序列或者数据框排序:

image.png


如图,非常简单。唯一要注意的是同列数据需要同类才能排序。字符与字符排序则是比较ASCII码。

如果有特定情况需要给索引排序,则有sort_index():

image.png

对数据框进行排序记得在sort_value()里设置by参数,用以确认你是以什么为基准排序的

image.png

思考:

是否可以设置多个by参数?是否有excel中那种主次要关键字排序?

(答:)

image.png

如上,必然是有的。设置传入列表就可以了,默认按列表顺序决定关键字顺序


四、删除列


当我们想把某一列数据剔除时,用drop函数即可

df1.drop(columns=["high"])#删除某一特定列
df1.drop(index=["Tom"])#删除某特定行
df1.drop(index=["Jack","Steve"])#批量删除,范例是删除行。列也可以

image.png

非常简单吧~


结语


基础还是后续的保证。这些操作不能保证后期会经常出现,但是理解了这些之后对进阶操作会有认知上的帮助。

千里之行始于足下,相信每个有志的掘友都能实现自己的技术梦!


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
18天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
48 0
|
2月前
|
数据采集 数据挖掘 数据处理
使用Python和Pandas进行数据分析基础
使用Python和Pandas进行数据分析基础
56 5
|
12天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
29 2
|
19天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
31 2
|
10天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
10天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
1月前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
50 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
1月前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
41 1
|
2月前
|
数据挖掘 Python
Pandas实战(1):电商购物用户行为数据分析
Pandas实战(1):电商购物用户行为数据分析
95 1
|
2月前
|
数据挖掘 Python
Pandas实战(3):电商购物用户行为数据分析
Pandas实战(3):电商购物用户行为数据分析
112 1