当前位置: 首页 > news >正文

【Python】pandas库---数据分析

  大学毕业那年,你成了社会底层群众里,受教育程度最高的一批人。 

前言 

  这是我自己学习Python的第四篇博客总结。后期我会继续把Python学习笔记开源至博客上。 

  上一期笔记有关Python的NumPy数据分析,没看过的同学可以去看看:
【Python】NumPy数据分析(二)_numpy里的维度是行数-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/hsy1603914691/article/details/142675036

pandas库 

1. pandas库建立在Numpy库之上,继承了Numpy库的功能。

2. Numpy库的主要对象是数组,而pandas库的主要对象是Series

3. 我们一般使用import pandas as pd,即用pd来简写pandas

创建Series对象 

1. 将一个列表作为参数,传入pandas库中的Series()方法即可创建一个Series对象。

2. 如果直接打印Series对象,那么会在左边给出索引、会在右边给出Series元素值。

3. 如果想单独打印索引,则使用Series.index,如果想单独打印Series元素值,则使用Series.values

4. Series对象也能进行索引和切片,和数组类似。 

import pandas as pd
s1=pd.Series([1,2,3,4,5])
print(s1)
print(s1.values)
print(s1.index)
#0    1
#1    2
#2    3
#3    4
#4    5
#dtype: int64
#[1 2 3 4 5]
#RangeIndex(start=0, stop=5, step=1)

Series对象的自定义索引

1. pandasSeries对象的索引可以自定义,只需创建Series对象时在列表后面指定index

2. 对于Series对象,既可以使用标签索引,又可以使用位置索引。

3. 在pandas中,如果使用标签索引,则使用loc方法;如果使用位置索引,则使用iloc方法。

4. 另一种创建自定义索引Series对象的方法是:把字典作为参数传入Series()方法,那么字典中的键则变成标签,字典中的值则变成元素值。

5. 如果想知道一个标签是否在Series对象里面,可以使用成员运算符in(not in)

6. 利用位置索引切片时,左闭右开;利用标签索引切片时,左右都是闭区间。

import pandas as pd
s1=pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])
print(s1)
print(s1.values)
print(s1.index)
#a    1
#b    2
#c    3
#d    4
#e    5
#dtype: int64
#[1 2 3 4 5]
#Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
print(s1.loc['a'])
#a
print(s1.iloc[1])
#a

Series对象的计算

1. pandas库会根据Series对象索引一致来计算元素值。

2. 为了避免出现NAN值,我们需要用pandas库提供的方法来进行加减乘除,而不能直接通过 + - * / 这四个符号来计算。

3. +Series1.add(Series1,fill_value=0)

4. -Series1.sub(Series1,fill_value=0)

5. *Series1.mul(Series1,fill_value=0)

6. /Series1.div(Series1,fill_value=0)

7. pandas库还提供了describe()方法,整体描述Series对象。

8. pandas库还提供了apply()方法,用于接收Series对象需要调用的函数,把Series对象的元素值作为参数传函数。

9. 以上的方法并不改变原来的Series对象,而是返回一个新的Series对象。

import pandas as pd
s1=pd.Series({"小明":92,"小红":67,"小杰":70,"小丽":88,"小华":76})
s2=pd.Series({"小明":95,"小杰":85,"小宇":60,"小娟":79,"小彤":76})
s3=s1.add(s2,fill_value=0)
print(s3)
print(s1.describe())
s1=s1+5
print(s1)def grade_std(score):if score>=90:return 'A'elif (score<90 and score>=80):return 'B'elif (score<80 and score>=70):return 'C'else:return 'D'
s4=s1.apply(grade_std)
print(s4)

创建DataFrame对象

1. 在pandas库中,多个Series对象组成一个DateFrame对象。Series对象类似于数组,而DateFrame对象类似于表格。

2. DateFrame对象的不同列可以是不同的数据类型,所以DateFrame对象不止有横向的索引,也有列项的列名。

3. 创建DateFrame对象,可以使用pandas库的DataFrame()方法,往里面传入一个字典为参数,其中字典的键是列名,字典的值是不同的Series对象。

致谢

  感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能! 

相关文章:

【Python】pandas库---数据分析

大学毕业那年&#xff0c;你成了社会底层群众里&#xff0c;受教育程度最高的一批人。 前言 这是我自己学习Python的第四篇博客总结。后期我会继续把Python学习笔记开源至博客上。 上一期笔记有关Python的NumPy数据分析&#xff0c;没看过的同学可以去看看&#xff1a;【Pyt…...

RabbitMQ 的7种工作模式

RabbitMQ 共提供了7种⼯作模式,进⾏消息传递,. 官⽅⽂档:RabbitMQ Tutorials | RabbitMQ 1.Simple(简单模式) P:⽣产者,也就是要发送消息的程序 C:消费者,消息的接收者 Queue:消息队列,图中⻩⾊背景部分.类似⼀个邮箱,可以缓存消息;⽣产者向其中投递消息,消费者从其中取出消息…...

负载均衡式在线OJ

文章目录 项目介绍所用技术与开发环境所用技术开发环境 项目框架compiler_server模块compiler编译功能comm/util.hpp 编译时的临时文件comm/log.hpp 日志comm/util.hpp 时间戳comm/util.hpp 检查文件是否存在compile_server/compiler.hpp 编译功能总体编写 runner运行功能资源设…...

【3D打印机】启庞KP3S热床加热失败报错err6

最近天冷&#xff0c;打印机预热突然失败&#xff0c;热床无法加热&#xff0c;过了一段时间报错err6&#xff0c;查看另一篇资料说是天气冷原因&#xff0c;导致代码的PID控温部分达不到预期加热效果&#xff0c;从而自检报错&#xff0c;然后资料通过修改3D打印机代码的方式进…...

基于 MATLAB 的图像增强技术分享

一、引言 图像增强是数字图像处理中的重要环节&#xff0c;其目的在于改善图像的视觉效果&#xff0c;使图像更清晰、细节更丰富、对比度更高&#xff0c;以便于后续的分析、识别与理解等任务。MATLAB 作为一款功能强大的科学计算软件&#xff0c;提供了丰富的图像处理工具和函…...

前端知识补充—HTML

1. HTML 1.1 什么是HTML HTML(Hyper Text Markup Language), 超⽂本标记语⾔ 超⽂本: ⽐⽂本要强⼤. 通过链接和交互式⽅式来组织和呈现信息的⽂本形式. 不仅仅有⽂本, 还可能包含图⽚, ⾳频, 或者⾃已经审阅过它的学者所加的评注、补充或脚注等等 标记语⾔: 由标签构成的语⾔…...

安卓从Excel文件导入数据到SQLite数据库的实现

在现代的移动应用开发中&#xff0c;数据的处理和管理是至关重要的一环。有时候&#xff0c;我们需要从外部文件&#xff08;如Excel文件&#xff09;中导入数据&#xff0c;以便在应用程序中使用。本文将介绍如何在Android应用中使用Java代码从一个Excel文件中导入数据到SQLit…...

C/C++基础知识复习(44)

1) C 中多态性在实际项目中的应用场景 多态性是面向对象编程&#xff08;OOP&#xff09;中的一个重要特性&#xff0c;指的是不同的对象可以通过相同的接口来表现不同的行为。在 C 中&#xff0c;多态通常通过虚函数&#xff08;virtual&#xff09;和继承机制来实现。实际项…...

【day13】深入面向对象编程

【day12】回顾 在正文开始之前&#xff0c;先让我们回顾一下【day12】中的关键内容&#xff1a; 接口&#xff08;Interface&#xff09;&#xff1a; interface关键字用于定义接口。implements关键字用于实现接口。 接口成员&#xff1a; 抽象方法&#xff1a;需要在实现类中…...

《 火星人 》

题目描述 人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言&#xff0c;但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的&#xff0c;首先&#xff0c;火星人把一个非常大的数字告诉人类科学家&#xff0c;科学家破解这…...

盒子模型(内边距的设置)

所有元素都可以设置内边距属性和外边距属性大体相同&#xff0c;可参考上一篇&#xff0c;但有区别 内边距不能设置为负值padding-方向&#xff1a;尺寸 注意&#xff1a;使用内边距padding之后元素整体会变大&#xff0c;因为他是直接加上了内边距的大小&#xff0c;不改变元素…...

CentOS7网络配置,解决不能联网、ping不通外网、主机的问题

1. 重置 关闭Centos系统 编辑->虚拟网络编辑器 还原默认设置 2. 记录基本信息 查看网关地址,并记录在小本本上 查看网段,记录下 3. 修改网卡配置 启动Centos系统 非root用户,切换root su root查看Mac地址 ifconfig 或 ip addr记录下来 修改配置文件 vim /et…...

如何测继电器是否正常

继电器是一种电控制器件&#xff0c;广泛应用于自动控制、电力保护等领域。为了确保继电器的正常工作&#xff0c;定期检测其状态是非常必要的。以下是一些常用的方法来测试继电器是否正常工作&#xff1a; 1. 视觉检查&#xff1a; - 观察继电器的外观是否有损坏、变形或烧焦…...

最优二叉搜索树【东北大学oj数据结构10-4】C++

题面 最优二叉搜索树是由 n 个键和 n1 个虚拟键构造的二叉搜索树&#xff0c;以最小化搜索操作的成本期望值。 给定一个序列 Kk1​,k2​,...,kn​&#xff0c;其中 n 个不同的键按排序顺序 &#xff0c;我们希望构造一个二叉搜索树。 对于每个关键 ki​&#xff0c;我们有一个…...

ESP32应用开发-Webserver

文章目录 库调用实例实现思路技术要点 1. 前端涉及的文件需要包装再发送2. http-GET路由3. http-POST路由 开发环境&#xff1a;Arduino 库调用 #include <WebServer.h> #include <ArduinoJson.h> //IDE没有自带&#xff0c;需自行安装实例 WebServer server…...

【IMU:视觉惯性SLAM系统】

视觉惯性SLAM系统简介 相机&#xff08;单目/双目/RGBD)与IMU结合起来就是视觉惯性&#xff0c;通常以单目/双目IMU为主。 IMU里面有个小芯片可以测量角速度与加速度&#xff0c;可分为6轴(6个自由度)和9轴&#xff08;9个自由度&#xff09;IMU&#xff0c;具体的关于IMU的介…...

前端开发 之 12个鼠标交互特效下【附完整源码】

前端开发 之 12个鼠标交互特效下【附完整源码】 文章目录 前端开发 之 12个鼠标交互特效下【附完整源码】七&#xff1a;粒子烟花绽放特效1.效果展示2.HTML完整代码 八&#xff1a;彩球释放特效1.效果展示2.HTML完整代码 九&#xff1a;雨滴掉落特效1.效果展示2.HTML完整代码 十…...

Unity文件路径访问总结:从基础到高级的资源加载方法

在Unity开发中&#xff0c;文件路径的访问和资源加载是开发者经常需要处理的任务。无论是加载纹理、模型、音频&#xff0c;还是读取配置文件&#xff0c;正确地处理路径和资源加载是确保项目顺利运行的关键。本文将以Unity文件路径访问为主线&#xff0c;详细介绍Unity中常见的…...

AWS Transfer 系列:简化文件传输与管理的云服务

在数字化转型的今天&#xff0c;企业对文件传输、存储和管理的需求日益增长。尤其是对于需要大量数据交换的行业&#xff0c;如何高效、可靠地传输数据成为了一大挑战。为了解决这一难题&#xff0c;AWS 提供了一系列的文件传输服务&#xff0c;统称为 AWS Transfer 系列。这些…...

Jenkins Api Token 访问问题

curl --location http://192.168.18.202:8080/view/ChinaFish/job/Ali/buildWithParameters?token1142be281174ee8fdf58773dedcef7ea4c&DeployTypeUpdateConfig \ --header Authorization: •••••• \ --header Cookie: JSESSIONID.824aa9a5node01ojk9yhh3imc24duwy67…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...

怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)

+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...

负载均衡器》》LVS、Nginx、HAproxy 区别

虚拟主机 先4&#xff0c;后7...