pandas入门

pandas入门

  • 一、pandas简介
    • 1.1 pandas介绍
    • 1.2 pandas的基本功能
  • 二、pandas快速入门
    • 2.1 读取数据
    • 2.2 验证数据
    • 2.3 建立索引
    • 2.4 数据抽取
      • 2.4.1 选择列
      • 2.4.2 选择行
      • 2.4.3 指定行和列
    • 2.5 排序
    • 2.6 分组聚合
    • 2.7 数据转置
    • 2.8 增加列
    • 2.9 统计分析

一、pandas简介

1.1 pandas介绍

pandas是使用Python语言开发的用于数据处理和数据分析的第三方库。它擅长处理数字型数据和时间序列数据,文本型的数据也能轻松处理。

1.2 pandas的基本功能

1、从Excel、csv、网页、SQL等文件或工具中读取数据;
2、合并多个文件或者电子表格中的数据,将数据拆分为独立文件;
3、数据清洗,如去重、处理缺失值、填充默认值、补全格式、处理极端值等;
4、建立高效的索引;
5、按一定的业务逻辑插入计算后的列、删除列;
6、灵活方便的数据查询、筛选;
7、分组聚合数据,可独立指定分组后的各字段计算方式;
8、数据的转置,如行转列、列转行变更处理;
9、对时序数据进行分组采样,如按季、按月、按工作小时,也可以自定义周期,如工作日;
10、等等。

二、pandas快速入门

2.1 读取数据

本次演示采用的数据集是学生成绩数据集。首先,将数据读取到pandas里,变量名用df。

import pandas as pd   # 导入pandas库,起别名dfdf = pd.read_excel('team.xlsx')    # team.xlsx文件与notebook文件或py文件在同一目录下

看一下数据集的情况:
在这里插入图片描述

2.2 验证数据

下面是一些常用的验证数据的代码,可以执行看看效果(一次执行一行):

df.shape    # (100,6)查看行数和列数
df.info()    # 查看索引、数据类型和内存信息
df.describe()    # 查看数值型列的汇总统计
df.dtypes    # 查看各字段类型
df.axes    # 查看数据行和列名
df.index    # 行名
df.columns    # 列名

2.3 建立索引

以下代码将name列设置为索引:

df.set_index('name', inplace=True)

其中可选参数inplace=True会将指定好索引的数据再赋值给df使索引生效,否则索引不会生效。注意,这里并没有修改原Excel,从我们读取数据后就已经和它没有关系了,我们处理的内存中的df变量。
再来查看一下索引列更改之后的数据,使用代码df.head()查看:

在这里插入图片描述

2.4 数据抽取

2.4.1 选择列

选择列的方法有如下几种:

df['Q1']    # 查看指定列
df.Q1    # 同上,如果列名符合Python变量名要求,可使用
df[['Q1', 'Q2']]   # 选择两列
df.loc[:, ['team', 'Q1']]    # 和上一行效果一样

2.4.2 选择行

# 用指定索引选取
df[df.index=='Arry']# 用自然索引选取,类似列表的切片
df[0:3]    # 选择前三行
df[0:20:2]    # 添加了步长
df.iloc[:10, :]    # 选取前10行

2.4.3 指定行和列

同时选取行和列的范围:

df.loc['Ben', 'Q1':'Q4']    # 查看Ben的四个季度成绩
df.loc['Eorge':'Alexander', 'team':'Q4']    # 同时指定行和列区间

2.5 排序

示例如下:

df.sort_values(by='Q1')    # 按Q1列升序排序
df.sort_values(by='Q2', ascending=False)    # 按Q2列降序排序,ascending是上升的意思
df.sort_values(by=['team', 'Q1'], ascending=[True, False])   # team升序,Q1降序

2.6 分组聚合

我们可以实现类似SQL的groupby那样的数据透视功能:

df.groupby('team').sum()    # 按团队分组对应列求和
# 不同列不同的计算方法
df.groupby('team').agg({'Q1':'sum',     # 求和'Q2':'count',    # 总数'Q3':'mean',    # 平均值'Q4':'max'})    # 最大值

2.7 数据转置

数据的转置非常简单,在DataFrame后面加T即可,示例如下:

df.head().T

对比一下转置前和转置后的数据:
转置前
在这里插入图片描述

2.8 增加列

用pandas增加一列非常方便,就与新定义一个字典的键值对一样。

df['one'] = 1    # 增加一个固定值的列
df['total'] = df.Q1 + df.Q2 + df.Q3 + df.Q4    # 增加总成绩列
# 将计算得来的结果赋值给新列
df['total'] = df.loc[:, 'Q1':'Q4'].apply(lambda x:sum(x), axis=1)
df['total'] = df.sum(axis=1)    # 可以把所有为数字的列相加
df['avg'] = df.total / 4    # 增加平均成绩列

2.9 统计分析

df.loc[:, 'Q1':'Q4'].mean()    # 返回所有列的均值
df.loc[:, 'Q1':'Q4'].mean(1)    # 返回所有行的均值
df.loc[:, 'Q1':'Q4'].corr    # 返回列与列之间的相关系数
df.count()    # 返回每一列的非空值的个数
df.max()    # 返回每一列的最大值
df.min()    # 最小值
df.median()    # 中位数
df.std()    # 标准差
df.var()    # 方差

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之基于YOLOv5草莓成熟度目标检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 草莓作为一种广受欢迎的水果,其成熟度的判断对于保证草莓的品质和口感至关重要。然…

Redis-五大数据类型-Zset(有序集合)

五大数据类型-Zset(有序集合) 简介 Zset与Set非常相似,是一个没有重复元素的String集合。 不同之处是Zset的每个元素都关联了一个分数(score),这个分数被用来按照从低分到高分的方式排序集合中的元素。集…

文献速递:深度学习医学影像心脏疾病检测与诊断--从SPECT/CT衰减图中深度学习冠状动脉钙化评分提高了对重大不良心脏事件的预测

Title 题目 Deep Learning Coronary Artery Calcium Scores from SPECT/CT Attenuation Maps Improve Prediction of Major Adverse Cardiac Events 从SPECT/CT衰减图中深度学习冠状动脉钙化评分提高了对重大不良心脏事件的预测 01 文献速递介绍 低剂量非门控CT衰减校正&am…

红黑树(RBTree)认识总结

一、认识红黑树 1.1 什么是红黑树? 红黑树是一种二叉搜索树,与普通搜索树不同的是,在每个节点上增加一个“颜色”变量 —— RED / BLACK 。 通过对各个节点颜色的限制,确保从 根 到 NIL ,没有一条路径会比其他路径长出…

Golang | Leetcode Golang题解之第61题旋转链表

题目: 题解: func rotateRight(head *ListNode, k int) *ListNode {if k 0 || head nil || head.Next nil {return head}n : 1iter : headfor iter.Next ! nil {iter iter.Nextn}add : n - k%nif add n {return head}iter.Next headfor add > …

8.k8s中网络资源service

目录 一、service资源概述 二、service资源类型 1.ClusterIP类型 2.service的nodeport类型 3.service的loadbalancer类型(了解即可) 4.service的externalname类型(了解即可) 三、nodeport的端口范围设置和svc的endpoint列表 1.修…

spring高级篇(十)

1、内嵌tomcat boot框架是默认内嵌tomcat的,不需要手动安装和配置外部的 Servlet 容器。 简单的介绍一下tomcat服务器的构成: Catalina: Catalina 是 Tomcat 的核心组件,负责处理 HTTP 请求、响应以及管理 Servlet 生命周期。它包…

视频改字祝福/豪车装X系统源码/小程序uniapp前端源码

uniapp视频改字祝福小程序源码,全开源。创意无限!AI视频改字祝福,豪车装X系统源码开源,打造个性化祝福视频不再难! 想要为你的朋友或家人送上一份特别的祝福,让他们感受到你的真诚与关怀吗?现在…

Linux-信号概念

1. 什么是信号 信号本质是一种通知机制,用户or操作系统通过发送信号通知进程,进程进行后续处理 在日常生活中就有很多例子,比如打游戏方面王者荣耀的“进攻”,“撤退”,“请求集合”,“干得漂亮&#xff01…

【Unity动画系统】动画层级(Animation Layer)讲解与使用

如何使用Unity的Animation Layer和Avater Mask把多个动画组合使用 想让玩家持枪行走,但是手里只有行走和持枪站立的动作。 Unity中最方便的解决办法就是使用动画层级animation layer以及替身蒙版avatar mask。 创建一个动画层级 Weight表示权重,0的话则…

PXE高效批量网络装机

一.PXE概述 PXE批量部署的优点 规模化:同时装配多台服务器自动化:安装系统、配置各种服务远程实现:不需要光盘、U盘等安装介质 PXE(Preboot eXcution Environment) 预启动执行环境,在操作系统之前运行 …

【从零开始学架构 前言】整体的学习路线

本文是《从零开始学架构》的第一篇学习笔记,在工作6年左右的这个时间点需要有一些先行的理论来指导即将面临的复杂实践,以便在真正面临复杂实践的时候能有所参照。 主要从以下几个方面和顺序来进行学习 架构基础:从架构设计的本质、历史背景…

最详细的IP SSL证书介绍及申请渠道

JoySSL官网 注册码230918 在互联网的广阔舞台上,每个参与其中的设备都需要一个独一无二的标识——IP地址,以实现精准的通信和数据交换。随着网络安全重要性的日益凸显,如何验证和信任这些IP地址的真实性成为了一个核心问题。正是在这样的背景…

(数据分析方法)相关性分析

目录 一、定义 二、相关关系分类 三、数据可视化(散点图) 四、相关分析 4.1 量化指标 4.1.1 相关系数 4.1.1.1 皮尔森(Pearson)相关系数 4.1.1.2 斯皮尔曼(Spearman)相关系数 4.1.1.3 肯达尔(Kendall&#xff…

JavaScript中的RegExp和Cookie

个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 🔆RegExp 🎲 1 什么是正则表达式 🎲2 创建…

【go项目01_学习记录04】

学习记录 1 集成 Gorilla Mux1.1 为什么不选择 HttpRouter?1.2 安装 gorilla/mux1.3 使用 gorilla/mux1.4 迁移到 Gorilla Mux1.4.1 新增 homeHandler1.4.2 指定 Methods () 来区分请求方法1.4.3 请求路径参数和正则匹配1.4.4 命名路由与链接生成 1 集成 Gorilla Mu…

springboot+vue+elementui实现校园互助平台大作业、毕业设计

目录 一、项目介绍 二、项目截图 管理后台 1.登录(默认管理员账号密码均为:admin) 2. 用户管理 ​编辑 3.任务管理 互助单(学生发布) 行政单(教师发布) ​编辑 审核(退回需…

【无标题】不锈钢轴承能耐高温多少度:开启润滑技术新纪元

江苏鲁岳SIAIF品牌的不锈钢耐高温轴承的具体耐高温性能会因轴承的型号、材料、制造工艺等因素而有所不同。然而,一般来说,不锈钢轴承的耐高温性能较高,可以在高温环境下正常工作。 根据相关资料,SIAIF不锈钢耐高温轴承可以在-60℃…

Linux基本指令(下下)

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 本篇博客续我之前的Linux指令(下&a…

数据库提权

1.此时实验需要用到的软件: (1)phpStudy该程序包集成最新的ApachePHPMySQL phpMyAdminZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境.该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等.总之学习PHP只需…