8个Python高效数据分析的技巧!

news2025/1/6 4:50:20

一行代码定义List

定义某种列表时,写For 循环过于麻烦,幸运的是,Python有一种内置的方法可以在一行代码中解决这个问题。下面是使用For循环创建列表和用一行代码创建列表的对比。

x = [1,2,3,4]
out = []
for item in x:
  out.append(item**2)
print(out)

[1, 4, 9, 16]

# vs.

x = [1,2,3,4]
out = [item**2 for item in x]
print(out)

[1, 4, 9, 16]

Lambda表达式

厌倦了定义用不了几次的函数?Lambda表达式是你的救星!Lambda表达式用于在Python中创建小型,一次性和匿名函数对象, 它能替你创建一个函数。

lambda表达式的基本语法是:

lambda arguments: expression

注意!只要有一个lambda表达式,就可以完成常规函数可以执行的任何操作。

你可以从下面的例子中,感受lambda表达式的强大功能:

double = lambda x: x * 2
print(double(5))

10

Map和Filter

一旦掌握了lambda表达式,学习将它们与Map和Filter函数配合使用,可以实现更为强大的功能。具体来说,map通过对列表中每个元素执行某种操作并将其转换为新列表。

在本例中,它遍历每个元素并乘以2,构成新列表。 (注意!list()函数只是将输出转换为列表类型)

# Map
seq = [1, 2, 3, 4, 5]
result = list(map(lambda var: var*2, seq))
print(result)

[2, 4, 6, 8, 10]

Filter函数接受一个列表和一条规则,就像map一样,但它通过比较每个元素和布尔过滤规则来返回原始列表的一个子集。

# Filter
seq = [1, 2, 3, 4, 5]
result = list(filter(lambda x: x > 2, seq))
print(result)


[3, 4, 5]

Arange和Linspace

Arange返回给定步长的等差列表。它的三个参数start、stop、step分别表示起始值,结束值和步长, 请注意!stop点是一个“截止”值,因此它不会包含在数组输出中。

# np.arange(start, stop, step)
np.arange(3, 7, 2)


array([3, 5])

Linspace和Arrange非常相似,但略有不同。Linspace以指定数目均匀分割区间,所以给定区间start和end,以及等分分割点数目num,linspace将返回一个NumPy数组。

这对绘图时数据可视化和声明坐标轴特别有用。

# np.linspace(start, stop, num)
np.linspace(2.0, 3.0, num=5)

array([ 2.0,  2.25,  2.5,  2.75, 3.0]

Axis代表什么?

在Pandas中,删除一列或在NumPy矩阵中求和值时,可能会遇到Axis。我们用删除一列(行)的例子:

df.drop('Column A', axis=1)

df.drop('Row A', axis=0)

如果你想处理列,将Axis设置为1,如果你想要处理行,将其设置为0。但为什么呢? 回想一下Pandas中的shape。

df.shape
(# of Rows, # of Columns)

从Pandas DataFrame中调用shape属性返回一个元组,第一个值代表行数,第二个值代表列数。

如果你想在Python中对其进行索引,则行数下标为0,列数下标为1,这很像我们如何声明轴值。

Concat,Merge和Join

如果您熟悉SQL,那么这些概念对你来说可能会更容易。 无论如何,这些函数本质上就是以特定方式组合DataFrame的方式。 在哪个时间跟踪哪一个最适合使用可能很困难,所以让我们回顾一下。

Concat允许用户在表格下面或旁边追加一个或多个DataFrame(取决于您如何定义轴)。

Merge将多个DataFrame合并指定主键(Key)相同的行。

Join,和Merge一样,合并了两个DataFrame。但它不按某个指定的主键合并,而是根据相同的列名或行名合并。

Pandas Apply

Apply是为Pandas Series而设计的。如果你不太熟悉Series,可以将它想成类似Numpy的数组。

Apply将一个函数应用于指定轴上的每一个元素。使用Apply,可以将DataFrame列(是一个Series)的值进行格式设置和操作,不用循环,非常有用!

df = pd.DataFrame([[4, 9],] * 3, columns=['A', 'B'])
 df
   A  B
0  4  9
1  4  9
2  4  9

df.apply(np.sqrt)
     A    B
0  2.0  3.0
1  2.0  3.0
2  2.0  3.0

df.apply(np.sum, axis=0)
A    12
B    27

df.apply(np.sum, axis=1)
0    13
1    13
2    13

Pivot Tables

如果您熟悉Microsoft Excel,那么你也许听说过数据透视表。

Pandas内置的pivot_table函数以DataFrame的形式创建电子表格样式的数据透视表,,它可以帮助我们快速查看某几列的数据。

下面是几个例子:

非常智能地将数据按照“Manager”分了组:

pd.pivot_table(df, index=["Manager", "Rep"])

或者也可以筛选属性值

pd.pivot_table(df,index=
["Manager","Rep"],values=["Price"])

希望上面的这些描述能够让你发现Python一些好用的函数和概念。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

点击免费领取《CSDN大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通付盾连续九年荣登《中国网络安全企业100强》榜单,再次彰显创新与实力!

2023年12月1日,由中国计算机学会抗恶劣环境计算机专业委员会、信息产业信息安全测评中心、安全牛联合发起的第十一版《中国网络安全企业100强》正式发布。通付盾凭借强大的创新技术和优质的服务能力,再度入选百强榜单。此为自2015年起,通付盾…

YOLOv5改进: RT-DETR引入YOLOv5,neck和检测头助力检测

💡💡💡本文独家改进: 1) RT-DETR neck代替YOLOv5 neck部分; 2)引入RTDETRDecoder 多个订阅者要求(多个订阅者有需求会在专栏里进行更新),想出一期RT-DETR的neck引入到YOLOv5,那就安排 💡💡💡Yolov5/Yolov7魔术师,独家首发创新(原创),适用于Yolov5、Yo…

C++ 操作MinIO做文件数据的上传和下载(踩坑与经验)包含编译包

前言 最近在做项目流程优化,准备将之前的java对文件的操作转换到c端,因此做了基于c的minio操作的测试demo。期间的各种踩坑与问题,花了一天时间总算是成功了,当然还有一些小问题,等待后续其他大拿解决。 项目环境 v…

【Android】Glide的简单使用(上)

文章目录 引入Glide的优点:缺点: 使用常用方法:从网络加载图片从文件加载图片加载resource资源加载URI地址设置占位图出错时的图片占位图图片过渡的Transitions自定义过渡动画图片大小调整缩放图片播放gifasGif()把Gif当作Bitmap播放显示本地视频缩略图 引入 Glide是Google员工…

ISNAS-DIP: Image-Specific Neural Architecture Search for Deep Image Prior

ISNAS-DIP:用于深度图像先验的图像特定神经架构搜索 论文链接:https://arxiv.org/abs/2111.15362v2 项目链接:https://github.com/ozgurkara99/ISNAS-DIP Abstract 最近的研究表明,卷积神经网络(CNN)架构在频谱上偏向较低频率&…

装修风格及要求

水电改造 报价? 电线 3C认证国标BV线(非BVR),电线上有厂名,买足百米的 厨卫空调4平方线普通插座2.5平方线冰箱2.5平方线照明2.5平方线入户主线6平方或10平方 地面电线点对点,线和线管连接处要有锁扣 品…

Pandas使用过程中的神器加持 你不用不要怪我

Pandas是我们日常处理表格数据最常用的包,但是对于数据分析来说,Pandas的DataFrame还不够直观,所以今天我们将介绍4个和Pandas相关的Python包,可以将Pandas的DataFrame转换交互式表格,让我们可以直接在上面进行数据分析…

将文件夹中所有文件名取出

dir C:\Users\是啊\Desktop\实验五/b>C:\Users\是啊\Desktop\1111.xls C:\Users\是啊\Desktop\实验五(这个是文件夹路径) /b (参数) C:\Users\是啊\Desktop\1111.xls(文件名输出的文件路径)

电路装修干货上篇|装修小白硬装必做功课。福州中宅装饰,福州装修

你是否曾经遇到过这样的情况:同时开启浴霸和电磁炉时,家里的电闸却跳了。这种情况往往会让人们对家居装修中的电线布置产生疑问。今天,以一位从业装修工作10年的工长的经验,为大家解答有关电线布置的常见问题。 1️⃣电线的平方数…

★581. 最短无序连续子数组

581. 最短无序连续子数组 方法一: class Solution {public int findUnsortedSubarray(int[] nums) {// 数组的复制int[] sortednums new int[nums.length];System.arraycopy(nums, 0, sortednums, 0, nums.length);Arrays.sort(sortednums);int l0,rnums.length-1;…

基于Java SSM框架实现汽车在线销售系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现汽车在线销售系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&a…

Leetcode—383.赎金信【简单】

2023每日刷题(五十) Leetcode—383.赎金信 实现代码 class Solution { public:int arr[26] {0};int arr2[26] {0};bool canConstruct(string ransomNote, string magazine) {int len ransomNote.size();int len2 magazine.size();for(int i 0; i …

前置微小信号放大器在传感器测试中的应用

前置微小信号放大器在医疗领域中有广泛的应用。它们是一种专门设计用于放大微弱信号的放大器,可以提升信号的强度和质量,从而帮助医生进行准确的诊断和治疗。以下是前置微小信号放大器在医疗中的几个主要应用。 前置微小信号放大器常用于心电图设备中。E…

开始使用高性能、低延迟的对象存储服务 Amazon S3 Express One Zone

全新的对象存储服务 Amazon S3 Express One Zone 旨在提供比 Amazon S3 Standard 高出10倍的性能,同时每秒可处理数十万个请求,并且延迟始终保持在个位数毫秒级,因此非常适合存储最常访问的数据和要求最苛刻的应用程序。将对象存储和复制到单…

21款奔驰GLC300L升级HUD抬头显示 平视仪表信息

说起HUD抬头显示这个配置,最初是用在战斗机上的,它可以让战斗机驾驶员读取飞机的各种信息和状态,而无需移动头部,这样就能够有效的提高效率。但随着汽车技术的进步HUD这种配置也逐渐下放到民用车上。 发展到今,车上的…

Linux Shell 基础命令

Linux 是一个开源的操作系统,其命令行界面是它的重要组成部分。在这个界面下,Shell 是一个能够与操作系统进行交互的工具。Shell 是一种程序,它能够接收用户输入的命令,并将这些命令发送到操作系统中进行处理。 在 Linux 中&…

UE小:UE5性能分析

开始录制性能追踪 要开始录制性能追踪,您可以简单地点击界面上的“开始录制”按钮。 查看追踪数据 录制完成后,点击“Trace”菜单中的“UnrealInsights”选项来查看追踪数据。 使用命令行进行追踪 如果点击录制按钮没有反应,您可以通过命令…

R语言【rgbif】——最全最详细的函数解读(name_suggest)

name_suggest最全最详细的参数解读 1. name_suggest的基本情况2. name_suggest的参数3. name_suggest的示例与理解3.1 参数 【q】3.2 参数【rank】3.3 参数【limit】3.4 参数【fields】3.5 参数【datasetKey】3.6 参数【curlopts】 1. name_suggest的基本情况 name_suggest是用…

ROS小练习——话题发布

目录 一、话题与消息获取 1、话题 2、消息 二、代码编写 1、C 2、python 三、编译运行 一、话题与消息获取 打开小乌龟案例 1、话题 rqt_graph rostopic list 2、消息 获取消息类型: rostopic type /turtle1/cmd_vel 获取消息格式: rosmsg info geometry_msgs/Twi…

NFC对物联网开发的影响及用途

当谈到NFC对物联网的影响时,不得不提它的几个重要的优势,可能在未来几年影响着物联网的发展方向。 全球智能手机的普及是其中一个重要因素:市面上已有数十亿部支持NFC的智能手机,专家们相信这个数字还会大幅增长。智能手机用户已…