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库,起别名df

df = 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.mfbz.cn/a/597213.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt QInputDialog详解

1.简介 QInputDialog是一个对话框类,用于从用户那里获取一个单一的值。这个值可以是字符串、数字、或者一个列表中的选项。QInputDialog提供了一个方便的方式来快速创建一个输入对话框,无需自己从头开始构建。 QInputDialog支持多种输入类型&#xff1…

【备战蓝桥杯】第十四届蓝桥杯省赛C/C++ B组真题及题解

参加了两届蓝桥杯以及做过了往年的真题我的直观感受是蓝桥杯不再那么“暴力”了,而是逐渐趋向DP和搜素图论方面了。下面是第十四届蓝桥杯省赛C/C B组真题及题解,希望对阅读的你有所帮助。 目录 题目试题A:日期统计试题B:01 串的熵…

Redis学习3——Redis应用之缓存

引言 缓存的意义 Redis作为一个NoSql数据库,被广泛的当作缓存数据库使用,所谓缓存,就是数据交换的缓冲区。使用缓存的具体原因有: 缓存数据存储于代码中,而代码运行在内存中,内存的读写性能远高于磁盘&a…

前后端功能实现——查询所有

目录 1、需求 2、步骤 1)创建模块 引入坐标 2)创建结构 实现三层架构 3)创建表 brand 4)创建实体类 Brand 5)创建MyBatis配置文件 6)创建映射文件 7)创建工具类 SqlSessionFactoryUti…

基于FPGA的数字信号处理(9)--定点数据的两种溢出处理模式:饱和(Saturate)和绕回(Wrap)

1、前言 在逻辑设计中,为了保证运算结果的正确性,常常需要对结果的位宽进行扩展。比如2个3bits的无符号数相加,只有将结果设定为4bits,才能保证结果一定是正确的。不然,某些情况如77 14(1110),如果结果只…

部署YUM仓库以及NFS共享服务

YUM仓库部署 一.YUM概述 YUM仓库源是一种软件包管理工具,用于在Linux系统上安装、更新和删除软件包。YUM仓库源包含了软件包的元数据信息和实际的软件包文件。用户可以通过配置YUM仓库源,从中下载和安装软件包。 常见的YUM仓库源包括: 本…

【一起深度吧!】24/05/03

池化层 最大池化和平均层化:最大池化:平均池化: 从零实现池化层: 最大池化和平均层化: 池化的作用: 1、可以降维,减少要 训练的参数。 2、提取特征,也就是保留主要的特征,过滤掉不重…

7-zip下载、安装

7-Zip 官方中文网站 (sparanoid.com) 7-Zip - 程序下载 (sparanoid.com)

Unity 性能优化之图片优化(八)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 前言一、可以提前和美术商量的事1.避免内存浪费(UI图片,不是贴图)2.提升图片性能 二、图片优化1.图片Max Size修改&#x…

Eayswoole 报错 crontab info is abnormal

在执行一个指定的定时任务时 如 php easyswoole crontab show 报错 crontab info is abnormal 如下图所示: 查询了半天 修改了如下配置: 旧的 // 创建定时任务实例 $crontab new \EasySwoole\Crontab\Crontab($crontabConfig); 修改后&#…

山海鲸医疗科技:引领智慧医疗新潮流

随着科技的飞速发展,智慧医疗已经成为医疗行业创新的重要方向。在这个背景下,山海鲸智慧医疗解决方案应运而生,以其先进的技术和全面的服务,为医疗行业带来了前所未有的变革。 山海鲸智慧医疗解决方案是一套集成医疗信息化、大数…

【OneAPI】网页截图API

OneAPI新接口发布:网页截图 可生成指定URL的网页截图。 接口地址:https://oneapi.coderbox.cn/openapi/api/webpage/screenshot 请求参数 参数名类型必填含义说明urlstring是要截图的网页链接例如:https://baidu.comwidthnumber否截图宽度…

龙迅LT9211D MIPI桥接到2 PORT LVDS,分辨率支持高达3840*2160*30HZ

龙迅LT9211D描述: Lontium LT9211D是一款高性能的MIPI DSI/CSI- 2到双端口LVDS转换器。LT9211D反序列化输入的MIPI视频数据,解码数据包,并将格式化的视频数据流转换为AP和移动显示面板或摄像机之间的LVDS发射机输出。LT9211D支持最大14 dB输…

手机运营商二要素验证接口:确保业务操作安全可靠

手机运营商二要素验证接口是一种通过与电信运营商合作的方式,检验手机用户的手机号码与姓名是否一致的服务。这个接口可以广泛应用于各种需要用户实名认证的场景,例如电商、游戏、直播以及金融等行业。 这个接口的作用非常重要,它可以帮助企…

C++——list的特性及使用

list的特性 STL中的list是指带头双向循环列表,list每个元素的存储相互独立,因为其节点存储位置独立不连续,其插入和删除不需要挪动其他元素效率比起vector更高。但也因为存储空间不连续的问题,不能做到和vector一样的随机…

鸿蒙编译子系统详解(二)main.py

1.5.4源码解析 1.5.4.1 build/hb/main.py脚本 这个脚本是编译的主程序脚本,流程如下: 首先是初始化各种module类,然后运行对应模块。 hb分为build,set,env,clean,tool,help几个模块,模块源码位于build/hb/modules/目录下&#xff…

学生管理系统初级

根据题目要求生成大纲 总结: 1.在书写时,考虑到了书写时id可是是abc... 类型是String,但在根据id获取集合中元素时 list.get() ,get()里面是int类型。 2.在书写还有一点功能并不完全, 2.1查找时是打印所有…

【NodeMCU实时天气时钟温湿度项目 1】连接点亮SPI-TFT屏幕和UI布局设计

前言 从今天开始,我们详解介绍制作实时天气时钟项目的方法步骤,主要分以下几个专题分别进行:(1)连接点亮SPI-TFT屏幕和UI布局设计;(2)NodeMCU的WIFI模式设置及连接;&…

车牌号识别系统:PyQT5+QT Designe+crnn/PaddleOCR+YOLO+OpenCV矫正算法。

PyQT5&QT Designecrnn/PaddleOCRYOLO传统OpenCV矫正算法。可视化的车牌识别系统项目。 车牌号识别系统 项目绪论1.项目展示2.视频展示3.整体思路 一、PyQT5 和 QT Designer1.简介2.安装3.使用 二、YOLO检测算法三、OpenCV矫正算法四、crnn/PaddleOCR字符识别算法五、QT界面…

FreeRTOS任务详解

一、任务的创建与删除 1.任务的基本概念 RTOS系统的核心就是任务管理,FreeRTOS 也不例外,而且大多数学习 RTOS 系统的工程 师或者学生主要就是为了使用 RTOS 的多任务处理功能,初步上手 RTOS 系统首先必须掌握的 也是任务的创建、删除、挂起和恢复等操作,由此可见任务管理…
最新文章