Python 从入门到实战43(Pandas数据结构)

        我们的目标是:通过这一套资料学习下来,可以熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

        上篇文章我们学习了NumPy数组操作的相关基础知识。今天学习一下pandas数据处理中的数据结构。

1、pandas简介

Pandas 是一个开源的第三方库,具有强大的数据处理和分析能力的库。主要为python语言提供了高性能、已于使用的数据结构和数据分析工具。

使用前需要先安装:

python -m pip install  pandas –target=第三方库路径

import pandas  #使用前导入第三方库

2、pandas 数据结构

pandas 的数据结构分两个核心,分别是Series、DataFrame。其中Series是一维数组,和Numpy 中的一维数组类似。这两种一维数组与python中基本数据结构list相近。Series可以保存多种数据类型的数据。如布尔值、字符串、数字类型等。DataFrame是一种以表格形式的数据结构类似与Excel表格一样,是一种二维的表格型数据结构。

3、Series 对象

1)创建Series对象

在创建Series对象时,只需要将数组形式的数据传入Series()构造函数中即可。

举例说明:

#创建Series 对象数据并输出
data = ['a','b','c','d'] #创建数据数组
series = pd.Series(data)  #创建Series 对象
print("查看创建的Series 对象:")
print(series) #输出Series 对象内容

输出结果:

查看创建的Series 对象:

0    a

1    b

2    c

3    d

dtype: object

另外,在创建Series 对象时,也可以指定索引。

举例如下:

#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)

输出结果:

01    A

02    B

03    C

dtype: object

2)访问数据

a、可以单独访问索引数组或者元素数组

#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
print("访问索引数组:",series.index) #输出索引数组
print("访问元素数组:",series.values) #输出元素数组

执行结果:

访问索引数组: Index(['01', '02', '03'], dtype='object')

访问元素数组: ['A' 'B' 'C']

b、可以获取指定下标的数组元素,通过“Series 对象[下标]”的方式

#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
#print("获取对应下标的数组元素:",series[1]) #输出数组元素
print("获取对应索引的数组元素:",series["01"]) #输出数组元素
print("访问索引数组:",series.index) #输出索引数组
print("访问元素数组:",series.values) #输出元素数组

执行结果:

获取对应索引的数组元素: A

c、获取多个下标对应的Series对象

#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
print("获取对应索引的数组多个元素:\n",series[0:3]) #输出数组元素
print("获取对应索引的数组多个元素:\n",series[["01","02"]]) #输出数组元素

执行结果:

获取对应索引的数组多个元素:

 01    A

02    B

03    C

dtype: object

获取对应索引的数组多个元素:

 01    A

02    B

dtype: object

3)修改元素值

通过指定下标或者指定索引的方式来实现修改元素值。

举例如下:

#创建Series 对象数据并输出,指定索引
data = ["A",'B','C']
index = ["01","02","03"]
series = pd.Series(data,index=index) #创建Series 对象,指定索引
print(series)
#修改索引"01"的元素值
series["01"] = "E"
print(series)  #输出修改后的数组

执行结果:

01    E

02    B

03    C

dtype: object

4、DataFrame 对象

在创建DataFrame 对象时,需要通过字典来创建DataFrame对象。其中,每列的名称为键,而每个键对应的是一个数组,这个数组作为值。

1)创建DataFrame对象

实例如下:

#创建DataFrame对象,输出对应的数据
data ={"M":[1,2,3,4],
       "N":[10,20,30,40],
        "O":[100,200,300,400]
}  #数组放入字典
data_frame = pd.DataFrame(data)  #创建DataFrame对象,字典的数据放入对象中,键为每列的名称
print(data_frame) #输出DataFrame对象的内容

执行结果:

  M   N    O

0  1  10  100

1  2  20  200

2  3  30  300

3  4  40  400

2)创建DataFrame对象-指定索引

参考上面例子的执行结果,没有指定索引时默认是:0-n

举例说明:

#创建DataFrame对象时指定索引,输出对应的数据
data ={"M":[1,2,3,4],
       "N":[10,20,30,40],
        "O":[100,200,300,400]
}  #数组放入字典
index = ["a","b","c",'d']
data_frame = pd.DataFrame(data,index=index)  #创建DataFrame对象时指定索引,字典的数据放入对象中,键为每列的名称
print(data_frame) #输出DataFrame对象的内容

执行结果:

   M   N    O

a  1  10  100

b  2  20  200

c  3  30  300

d  4  40  400

可以看到索引值是指定值:a-d

3)创建DataFrame对象-指定对应列的值

举例说明:我们上面讲到的例子是3列,假如我们只需要其中两列

#创建DataFrame对象时指定索引,输出对应的数据
data ={"M":[1,2,3,4],
       "N":[10,20,30,40],
        "O":[100,200,300,400]
}  #数组放入字典
index = ["a","b","c",'d']
# 创建DataFrame对象时指定索引,字典的数据指定的列放入对象中,键为每列的名称
data_frame = pd.DataFrame(data,index=index,columns=["M","N"])
print(data_frame) #输出DataFrame对象的内容

执行结果:

M   N

a  1  10

b  2  20

c  3  30

d  4  40

今天先写学习到这里了,每天进步一点点。明天也要加油啊!

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

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

相关文章

工程项目智能化管理平台,SpringBoot框架智慧工地源码,实现工程建设施工可视化、智能化的全过程闭环管理。

智慧工地管理系统的建设以“1个可扩展性平台2个应用端3方数据融合N个智能设备”为原则。以“智、保、安、全”为导向,与工程建设管理信息系统、综合安防平台深度集成,构建统一的标准化工地平台,实现现场人员、车辆、项目、安全、进度等方面的…

使用React构建现代Web应用

💖 博客主页:瑕疵的CSDN主页 💻 Gitee主页:瑕疵的gitee主页 🚀 文章专栏:《热点资讯》 使用React构建现代Web应用 1 引言 2 React简介 3 安装React 4 创建React项目 5 设计应用结构 6 创建组件 7 使用组件…

哈希——哈希表处理哈希冲突的方法

处理哈希冲突 实践中哈希表⼀般还是选择除法散列法作为哈希函数。 当然哈希表无论选择什么哈希函数也避免不了冲突(主要作用就是减少冲突),那么插入数据时,如何解决冲突呢?主要有两种两种方法,开放定址法和…

海外云手机是什么?对外贸电商有什么帮助?

在外贸电商领域,流量引流已成为卖家们关注的核心问题。越来越多的卖家开始利用海外云手机,通过TikTok等社交平台吸引流量,以推动商品在海外市场的销售。那么,海外云手机到底是什么?它又能为外贸电商卖家提供哪些支持呢…

Hadoop-001-本地虚拟机环境搭建

一、安装VMware 官方下载VMware: https://vmware.mdsoft.top/?bd_vid5754305114651491003 二、下载镜像文件 阿里云镜像仓库: https://mirrors.aliyun.com/centos/ 本文档使用 CentOS-7-x86_64-DVD-1810-7.6.iso 搭建虚拟机 三、搭建虚拟机 1、编辑…

Oracle视频基础1.1.2练习

1.1.2 需求: 查询oracle组件和粒度大小, select component,granule_size from v$sga_dynamic_components;Oracle SGA 中组件和粒度大小查询详解 在 Oracle 数据库的内存结构中,SGA(System Global Area,系统全局区&am…

动态上下文信念(DCB)

DCB(动态上下文信念)是一个用于累积通过注视获得信息的状态表示组件。它由三个部分组成: Fovea(中央凹):接收来自注视位置周围区域的高分辨率视觉输入。Contextual beliefs(上下文信念&#xf…

双月生日会:温暖相聚,共庆美好时刻

亲爱的华清远见西安中心的家人们: 🎉🎂 在这金风送爽的秋日里,我们迎来了9、10月的生日会。在这个特别的日子里,我们聚集一堂,共同庆祝那些在这两个月份里出生的小伙伴们的生日。🎂 活动现场布…

Junit + Mockito保姆级集成测试实践

一、做好单测,慢即是快 对于单元测试的看法,业界同仁理解多有不同,尤其是在业务变化快速的互联网行业,通常的问题主要有,必须要做吗?做到多少合适?现在没做不也挺好的吗?甚至一些大…

【经典论文阅读11】ESMM模型——基于贝叶斯公式的CVR预估

传统的CVR模型(也就是直接对conversion rate建模的模型)在实际应用中面临两个问题(样本选择偏差与数据稀疏性问题)。为了解决这两个问题,本文提出ESMM模型。该模型巧妙地利用用户行为序列去建模这个问题,从…

使用Git进行版本控制的最佳实践

文章目录 Git简介基本概念仓库(Repository)提交(Commit)分支(Branching) 常用命令初始化仓库添加文件提交修改查看状态克隆仓库分支操作合并分支推送更改 最佳实践使用有意义的提交信息定期推送至远程仓库使…

Vision-Language Models for Vision Tasks: A Survey阅读笔记

虽然LLM的文章还没都看完,但是终究是开始看起来了VLM,首当其冲,当然是做一片文献综述啦。这篇文章比较早了,2024年2月份出的last version。 文章链接:https://arxiv.org/abs/2304.00685 GitHub链接:GitHu…

Oracle OCP认证考试考点详解082系列07

题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 31. 第31题: 题目 解析及答案: 关于 “SET VERIFY ON” 命令,以下哪两个陈述是正确的? A…

网络搜索引擎Shodan(7)完结

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。 感谢泷…

【C++ 算法进阶】算法提升八

复杂计算 (括号问题相关递归套路 重要) 题目 给定一个字符串str str表示一个公式 公式里面可能有整数 - * / 符号以及左右括号 返回最终计算的结果 题目分析 本题的难点主要在于可能会有很多的括号 而我们直接模拟现实中的算法的话code会难写 要考虑…

​IOT NTN 与 NR NTN​

NTN(Non-Terrestrial Network)),即非地面网络通信,通过不同轨道高度的卫星对地面上的终端提供网络连接的服务。利用卫星通信网络与地面蜂窝网络的融合,可以在不受地形地貌的限制和影响下,连通空、天、地、海…

44-RK3588s调试 camera-engine-rkaiq(rkaiq_3A_server)

在RK3588s平台上调试imx415 camera sensor 过程中,已经识别到了camera sensor ID,并且可以拿到raw图和isp处理后的图像,但是isp处理后的图像偏绿,来看查看后台服务发现rkaiq_3A_server没有运行,然后单独运行rkaiq_3A_s…

【深度学习中的注意力机制10】11种主流注意力机制112个创新研究paper+代码——交叉注意力(Cross-Attention)

【深度学习中的注意力机制10】11种主流注意力机制112个创新研究paper代码——交叉注意力(Cross-Attention) 【深度学习中的注意力机制10】11种主流注意力机制112个创新研究paper代码——交叉注意力(Cross-Attention) 文章目录 【…

springboot响应文件流文件给浏览器+前端下载

springboot响应文件流文件给浏览器前端下载 1.controller: Api(tags {"【样本提取系统】-api"}) RestController("YbtqYstbtqController") RequiredArgsConstructor RequestMapping("/ybtq-ystbtq") Slf4j public class YbtqYstbtqController …

DAY67WEB 攻防-Java 安全JNDIRMILDAP五大不安全组件RCE 执行不出网

知识点: 1、Java安全-RCE执行-5大类函数调用 2、Java安全-JNDI注入-RMI&LDAP&高版本 3、Java安全-不安全组件-Shiro&FastJson&JackJson&XStream&Log4j Java安全-RCE执行-5大类函数调用 Java中代码执行的类: Groovy Runti…