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

news/2024/11/1 8:52:47/

        我们的目标是:通过这一套资料学习下来,可以熟练掌握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

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


http://www.ppmy.cn/news/1543533.html

相关文章

力扣题目解析--Z字形变换

题目 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下: P A H N A P L S I I G Y I R 之后,你的输出需要从…

mac-ubuntu虚拟机(扩容-共享-vmtools)

一、磁盘扩容 使用GParted工具对Linux磁盘空间进行扩展 https://blog.csdn.net/Time_Waxk/article/details/105675468 经过上面的方式后还不够,需要再进行下面的操作 lvextend 用于扩展逻辑卷的大小,-l 选项允许指定大小。resize2fs 用于调整文件系统的…

20241031 Apache2修改日志里面的时间格式

问题背景,Apache2里面日志输出,关于时间这一块,看着难受,所以有了如下需求,修改日志里面的时间格式 案例日志 127.0.0.1 - - [31/Oct/2024:19:20:34 0800] "GET /index.php/vod/search/actor/XimenadelSolar.html HTTP/1.1" 200 4233 "-" "Mozilla/5…

ubuntu启动慢,如何看启动耗时分布

ubuntu启动慢,如何看启动耗时分布 在Ubuntu系统中,如果您想检查启动过程中每个过程的耗时分布,可以使用systemd-analyze工具。这个工具可以帮助您诊断启动过程中哪些服务或步骤占用了较多时间。 查看总体启动时间: 要查看系统启动…

Python数据分析NumPy和pandas(十六、文本格式数据的读取与存储:csv、json、xml和html)

一、分段读取文本文件 在处理非常大的文件时,未找到合适的数据处理方法前,我们一般希望只读取文件的一小部分或遍历文件的较小块来做预处理或参考。这种情况可以采用分段读取文本文件的方式。 我们加载一个10000行的ex6.csv文件,其内容如下…

Python 网络爬虫教程:从入门到高级的全面指南

Python 网络爬虫教程:从入门到高级的全面指南 引言 在信息爆炸的时代,网络爬虫(Web Scraping)成为了获取数据的重要工具。Python 以其简单易用的特性,成为了网络爬虫开发的首选语言。本文将详细介绍如何使用 Python …

四足机器人实战篇之三:四足机器人嵌入式硬件设计

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、电源管理板设计及制作二、通讯板设计及制作三、力控无刷电机驱动板设计及制作1.磁场定向控制FOC控制原理2.电机转子位置、速度检测原理3.硬件C…

MYSQL--完整性约束

目录 约束 设置约束 方式一 推荐:方式二 删除约束 主键约束 自增列 组合主键, 联合主键 外键约束 给表添加外键约束 注意: 约束 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 目的:保证数据库中数据的正…