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.mzph.cn/web/57536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商行业的流程革命:创建SOP的最佳实践

在电商行业,随着业务规模的扩大和市场环境的快速变化,创建和遵循标准化操作程序(SOP)变得尤为重要。SOP不仅能够确保业务流程的一致性和高效性,还能帮助企业快速适应市场变化,提高服务质量。本文将探讨电商…

服务器宝塔安装哪吒监控

哪吒文档地址:https://nezha.wiki/guide/dashboard.html 一、准备工作 OAuth : 我使用的gitee,github偶尔无法访问,不是很方便。第一次用了极狐GitLab,没注意,结果是使用90天,90天后gg了,无法登…

计算机网络(Ⅶ)Web and HTTP

一些术语: Web页:由一些对象组成 对象可以是HTML文件,JPEG图像,Java小程序,声音剪辑文件等 Web页含有一个基本的HTML文件,该基本HTML文件又包含若干对象的引用(链接) 通过URL对每个对…

【ChatGPT】搜索趋势分析

【ChatGPT】搜索趋势分析 为了分析 ChatGPT 在过去一年的流行趋势,我们可以查看 Google Trends 的数据 安装依赖pytrends pip install pytrends运行以下 Python 脚本 import pandas as pd import matplotlib.pyplot as plt from pytrends.request import TrendR…

「MinIO快速入门」

官网:MinIO | S3 Compatible Storage for AI 中文:http://minio.org.cn/ MinIO 开始 MinIO 是一款高性能、开源的对象存储服务器。 一、主要特点 高性能 MinIO 采用了分布式架构,能够高效地处理大量数据的存储和访问请求。它针对多核处理…

C++ | Leetcode C++题解之第516题最长回文子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int longestPalindromeSubseq(string s) {int n s.length();vector<vector<int>> dp(n, vector<int>(n));for (int i n - 1; i > 0; i--) {dp[i][i] 1;char c1 s[i];for (int j i 1; j…

2024年,Rust开发语言,现在怎么样了?

Rust开发语言有着一些其他语言明显的优势&#xff0c;但也充满着争议&#xff0c;难上手、学习陡峭等。 Rust 是由 Mozilla 主导开发的通用、编译型编程语言&#xff0c;2010年首次公开。 在 Stack Overflow 的年度开发者调查报告中&#xff0c;Rust 连续多年被评为“最受喜爱…

【C/C++】模拟实现strlen

学习目标&#xff1a; 使用代码模拟实现strlen。 逻辑&#xff1a; strlen 需要输入一个字符串数组类型的变量&#xff0c;并且返回一个整型类型的数据。strlen 需要计算字符串数组有多少个元素。 代码1&#xff1a;使用计数器 #define _CRT_SECURE_NO_WARNINGS 1 #include&…

LLM | 论文精读 | 地学视觉语言大模型:Towards Vision-Language Geo-Foundation Model: A Survey

论文标题&#xff1a;Towards Vision-Language Geo-Foundation Model: A Survey 作者&#xff1a;Yue Zhou, Litong Feng, Yiping Ke, Xue Jiang, Junchi Yan, Xue Yang, Wayne Zhang 期刊&#xff1a;未提供 DOI&#xff1a;https://arxiv.org/abs/2406.09385 email&#x…

LC:贪心题解

文章目录 376. 摆动序列 376. 摆动序列 题目链接&#xff1a;https://leetcode.cn/problems/wiggle-subsequence/description/ 这个题目自己首先想到的是动态规划解题&#xff0c;贪心解法真的非常妙&#xff0c;参考下面题解&#xff1a;https://leetcode.cn/problems/wiggle…

淘宝商品评价API的获取与应用

在当今数字化时代&#xff0c;电商平台如淘宝已成为消费者购物的重要渠道。对于商家和开发者而言&#xff0c;如何高效地获取并利用商品评价数据&#xff0c;成为了提升产品竞争力和优化用户体验的关键。本文将详细介绍如何使用淘宝开放平台提供的商品评论API来获取这些宝贵的数…

类和对象(中)—— 类的六个默认成员函数

目录 1.类中的默认成员函数 2.构造函数 为什么要有构造函数 什么是构造函数 构造函数做了什么 默认生成的构造函数功能的分析 C11的补救 什么时候自己写构造函数 3.析构函数 为什么要有析构函数 什么是析构函数 析构函数做了什么 默认生成的析构函数功能的分析 什…

Java Executor ScheduledExecutorService 源码

前言 相关系列 《Java & Executor & 目录》《Java & Executor & ScheduledExecutorService & 源码》《Java & Executor & ScheduledExecutorService & 总结》《Java & Executor & ScheduledExecutorService & 问题》 涉及内容 …

[C++]C++知识点总结(Xmind思维导图)

目录 一、C入门基础 二、类和对象 三、C/C内存管理 四、模板 五、C的IO流 六、继承 七、多态 八、C11 九、智能指针 十、类型转换 由于C知识体系过于庞大&#xff0c;分为下面几个部分列出逻辑图&#xff08;有些不完整&#xff0c;后续更新中...&#xff09; 一、C入…

Elasticsearch分词器基础安装

简介 Elasticsearch (ES) 是一个基于 Lucene 的搜索引擎&#xff0c;分词器是其核心组件之一&#xff0c;负责对文本数据进行分析和处理。 1. 文本分析 分词器将输入的文本拆分成一个个单独的词&#xff08;tokens&#xff09;&#xff0c;以便后续的索引和搜索。例如&#x…

EfficientNet-B6模型实现ISIC皮肤镜图像数据集分类

项目源码获取方式见文章末尾&#xff01; 回复暗号&#xff1a;13&#xff0c;免费获取600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于opencv答题卡识别判卷】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【G…

扫雷游戏(C语言详解)

扫雷游戏&#xff08;C语言详解&#xff09; 放在最前面的1、前言&#xff08;扫雷游戏的简介&#xff09;2、扫雷游戏的规则&#xff08;简易版&#xff09;3、代码实现&#xff08;3.1&#xff09;提醒一下&#xff1a;( i ) 提醒1&#xff1a;( ii ) 提醒2&#xff1a; &…

影刀RPA自动化按钮参数详解

文章目录 一、基础识别参数1. 文本内容&#xff08;Text&#xff09;2. ID属性3. Name属性4. Class属性 二、高级定位参数1. XPath路径2. CSS选择器3. 图像识别 三、动态等待参数1. 等待超时2. 重试间隔 四、操作参数1. 点击类型2. 点击位置 五、最佳实践1. 按钮定位优先级2. 常…

WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)

文章目录 1、案例效果2、弹窗控件使用1.引入用户控件2、按钮命令实现 3、总结4、源代码获取 1、案例效果 2、弹窗控件使用 1.引入用户控件 打开 Wpf_Examples 项目&#xff0c;在引用中添加用户控件库&#xff0c;在 MainWindow.xaml 界面引用控件库&#xff0c;代码如下&…

C++(类继承、虚函数、多重继承)

类继承 &#xff08;1&#xff09;当创建一个类时&#xff0c;不需要重新编写新的成员变量和成员函数&#xff0c;只需要新建的类继承了一个已有的类的成员。已有的类称为基类或父类&#xff0c;新建的类称为派生类或子类。 &#xff08;2&#xff09;一个类可以有多个…