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 
相关文章
|
1月前
|
数据采集 数据挖掘 数据处理
使用Python和Pandas进行数据分析基础
使用Python和Pandas进行数据分析基础
45 5
|
3天前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
15 1
|
12天前
|
数据挖掘 Python
Pandas实战(1):电商购物用户行为数据分析
Pandas实战(1):电商购物用户行为数据分析
36 1
|
12天前
|
数据挖掘 Python
Pandas实战(3):电商购物用户行为数据分析
Pandas实战(3):电商购物用户行为数据分析
36 1
|
12天前
|
数据挖掘 Python
Pandas实战(2):电商购物用户行为数据分析
Pandas实战(2):电商购物用户行为数据分析
34 1
|
12天前
|
数据采集 数据挖掘 数据处理
小白一文学会Pandas:数据分析的瑞士军刀
小白一文学会Pandas:数据分析的瑞士军刀
26 1
|
12天前
|
数据挖掘 Python
Pandas数据分析实战(2):2023美国财富1000强公司情况
Pandas数据分析实战(2):2023美国财富1000强公司情况
26 0
|
12天前
|
数据采集 数据挖掘 Python
Pandas数据分析实战(1):2023美国财富1000强公司情况
Pandas数据分析实战(1):2023美国财富1000强公司情况
25 0
|
1月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【9月更文挑战第2天】数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
51 5
|
2月前
|
SQL 数据挖掘 关系型数据库
性能碾压pandas、polars的数据分析神器来了
性能碾压pandas、polars的数据分析神器来了