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

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

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


http://www.mrgr.cn/news/62897.html

相关文章:

  • 如何去掉idea的Usage提示
  • LSTM——长短期记忆神经网络
  • 【SAP FICO】八大业务_6货币资金管理
  • 硬核解读Stable Diffusion(完整版)
  • 基于安卓Android的学习记录提醒系统APP(源码+文档+部署+讲解)
  • [Vue warn]: Do not use built-in or reserved HTML elements as component id:
  • 哈希函数简介
  • 【调试记录】CARLA车辆actor设置BehaviorAgent自动规划后不沿道路行驶
  • Terraform Provider 加速方案
  • 什么是 Spring Cloud Bus?我们需要它吗?
  • 【AI日记】24.10.31 学习LangChain和寻找AI研究报告(比如麦肯锡)
  • ROS(快速初步入门)
  • 谷歌Google搜索广告账户代理开户!
  • iDP3复现代码运行逻辑全流程(一)——部署全流程代码逻辑梳理(Learning)
  • python opencv1
  • 金蝶云苍穹的Extension与Nop平台的Delta的区别
  • 基于LORA的一主多从监测系统_4G模块上巴法云
  • Linux高阶——1027—进程间关系相关
  • SpringFactoriesLoader
  • Java项目实战II基于Java+Spring Boot+MySQL的编程训练系统(源码+数据库+文档)
  • VB中如何处理国际化(Internationalization)和本地化(Localization)
  • 低代码的崛起:改变开发的游戏规则
  • Leetcode 移除元素
  • vector中去除重复的元素
  • [UVM] objection笔记
  • 7个提高 Python 代码运行效率的小贴士