Python----数据分析(Pandas二:一维数组Series,Series的创建,Series的属性,Series中元素的索引与访问)

一、一维数组Series

   Series:一维数组,与Numpy中的一维array类似。它是一种类似于一维数组的对象,是由一组数据(各种 NumPy 数据类型)以及一组与之相关的数据标签(即索引)组成。

        仅由一组数据也可产生简单的 Series 对象,用值列表生成 Series 时,Pandas 默认自动生成整数索引 。

二、Series的创建

  在Pandas中,一维数组的创建离不开Pandas库中的Series类。

pandas.Series(data=None, index=None, dtype=None, name=None, copy=None, fastpath=False)
描述说明
data

标量值,如整数或字符串

Python列表或元组

Python字典

1d-Ndarray

index数组或列表,用于定义Series的索引。如果未提供,则默认为从0开始的 整数索引。
dtype指定Series的数据类型。
name给Series一个名字,用于后续的索引和操作。
copy布尔值,默认为False。如果为True,则复制数据;如果为False,则尽可 能避免复制数据,仅影响Ndarray输入。
fastpath布尔值,默认为False,通常不需要用户指定。它是Pandas库内部使 用的一个优化标志,当设置为 True时,允许 Series构造函数绕过一些检查和验 证步骤,加快Series的创建速度。但由于这个参数跳过了某些安全检查,因此在 正常使用中,如果在创建Series时设置了 fastpath=True,而传入的数据又不符 合预期,则可能会导致不可预测的行为或错误。

2.1、使用标量创建

import pandas as pd
data=0
series=pd.Series(data,index=['a','b','c'])
print(series)
a    0
b    0
c    0
dtype: int64

2.2、使用列表或元组创建

import pandas as pd
data1=[1,2,3,4,5]
data2=(1,2,3,4,5)
series1=pd.Series(data1,index=['a','b','c','d','e'])
series2=pd.Series(data2,index=['a','b','c','d','e'])
print(series1,series2)
a    1
b    2
c    3
d    4
e    5
dtype: int64 a    1
b    2
c    3
d    4
e    5
dtype: int64

2.3、使用字典

        使用字典创建Series时,字典的键就是索引,字典的值就是该索引对应的值。如果使 用字典创建Series,并且指定了与字典的键不同的index参数,那么生成的Series数组 中的数据就是以index参数的值为索引,但索引所对应的值是NaN。

        在Pandas中, NaN(Not a Number)是一个特殊的浮点数,用于表示缺失数据或无 效数据。NaN 是 IEEE 浮点标准的一部分,Pandas 使用 NaN 来表示数据集中缺失或 未定义的值。

import pandas as pd
data={'a':1,'b':2,'c':3
}
series=pd.Series(data)
print(series)
a    1
b    2
c    3
dtype: int64

2.4、使用数组

import pandas as pd
import numpy as np
data=np.array([1,2,3,4,5]
)
series=pd.Series(data)
print(series)
0    1
1    2
2    3
3    4
4    5
dtype: int64

三、Series的属性

3.1、index

        返回Series中的索引。

import pandas as pd
series=pd.Series([1,2,3],index=['a','b','c'])
print(series.index)
series.index=['e','f','g']
print(series.index)
Index(['a', 'b', 'c'], dtype='object')
Index(['e', 'f', 'g'], dtype='object')

3.2、values

        用于返回Series中的数据,返回的数据将以Ndarray数组的形式存在。

import pandas as pd
series=pd.Series([1,2,3],index=['a','b','c'])
print(series.values)
print(type(series.values))
[1 2 3]
<class 'numpy.ndarray'>

3.3、name

        用于返回Series的名称,如果创建时指定了name参数,那么该属性的返回值就是 name参数,如果没有指定则为None。

import pandas as pd
series=pd.Series([1,2,3],index=['a','b','c'])
print(series.name)
series.name='test'
print(series.name)
None
test

3.4、dtype和dtypes

        对于Series来说,dtype和dtypes的作用是一样的,都是用来返回Series对象的数据 类型。 需

        要注意的是:

                        该属性是只读属性,不可以通过直接赋值的方式去修改数据类型。

import pandas as pd
series=pd.Series([1,2,3],index=['a','b','c'])
print(series.dtype)
int64

3.5、shape

        用于描述Series的形状。

import pandas as pd
series=pd.Series([1,2,3],index=['a','b','c'])
print(series.shape)
(3,)

3.6、 size

         用于返回Series的元素数量,该返回值是一个整数。

import pandas as pd
series=pd.Series([1,2,3],index=['a','b','c'])
print(series.size)
3

3.7、empty

        用来表示Series数组是否为空,返回值一个布尔值,如果数组里一个元素都没有就返 回True,否则返回False。

import pandas as pd
series=pd.Series()
print(series.empty)
True

3.8、hasnans

        用于返回数组中是否包含NaN值,如果数组中存在NaN,那么返回True,否则返回 False。

import pandas as pd
import numpy as np
series=pd.Series([1,2,np.nan],index=['a','b','c'])
print(series.hasnans)
True

3.9、is_unique

        用于返回数组中的元素是否为独一无二的,如果所有的元素都是独一无二的,即数组 中没有重复元素,那么就返回True,否则返回False。

import pandas as pd
import numpy as np
series=pd.Series(['a','b','c'])
print(series.is_unique)
True

3.10、nbytes

        用于返回该Series对象中所有数据占用的总字节数。

import pandas as pd
series=pd.Series([1,2,3],dtype='int64')
print(series.nbytes)
8

3.11、axes

        用于返回series对象行轴标签的列表。

import pandas as pd
series = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'], dtype='int64')
print(series.axes)
[Index(['a', 'b', 'c', 'd', 'e'], dtype='object')]

3.12、ndim

        返回Series数组的维度,对于Series数组来说,它的维度始终为1。

import pandas as pd
series = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'], dtype='int64')
print(series.ndim)
1

3.13、array

        用于返回Series的底层数组,包括数组的元素、数组的长度及数组元素的数据类型。

import pandas as pd
import numpy as np
data = np.array([1, 2, 3, 4, 5])
series = pd.Series(data)
print(series.array)
print(type(series.array))
<NumpyExtensionArray>
[np.int64(1), np.int64(2), np.int64(3), np.int64(4), np.int64(5)]
Length: 5, dtype: int64
<class 'pandas.core.arrays.numpy_.NumpyExtensionArray'>

3.14、attrs

        返回series的自定义属性,可以用来存储额外的说明性数据。

import pandas as pd
import numpy as np
data = np.array([1, 2, 3, 4, 5])
print(series.attrs)
series.attrs = {'source': 'file1', 'time': '19:27:27'}
print(series)
print('额外属性', series.attrs)
{}
0    1
1    2
2    3
3    4
4    5
dtype: int64
额外属性 {'source': 'file1', 'time': '19:27:27'}

3.15、is_monotonic_decreasing

        返回一个布尔值,表示Series是否按降序排列。

import pandas as pd
series = pd.Series([5, 4, 3, 2, 1])
print(series.is_monotonic_decreasing)
True

3.16、is_monotonic_increasing

        返回一个布尔值,表示Series是否按升序排列。

import pandas as pd
series = pd.Series([5, 4, 3, 2, 1])
print(series.is_monotonic_increasing)
False

四、 Series中元素的索引与访问

4.1、位置索引

        可以使用整数索引来访问Series中的元素,就像访问列表一样。

import pandas as pd
series=pd.Series([10,20,30,40,50,60])print(series[0])
print(series[1])
10
20

4.2、标签索引

        除了使用位置索引之外,还可以使用标签进行索引,与访问字典中的元素类似。

import pandas as pd
series=pd.Series([10,20,30,40,50],index=['a','b','c','d','e'])
print(series['a'])
print(series['c'])
10
30

4.3、切片索引

        Series对象的切片方式有两种,第一种是使用位置切片,其使用方法与列表的切片类 似;第二种是使用标签切片,其语法与位置切片类似,都是 start:stop,且开始值 与终止值可以省略,但与位置切片不同的是,标签切片的范围是左右都闭合,即既包 含start,又包含stop,而位置切片是左闭右开,只包含start,不包含stop。

import pandas as pd
series=pd.Series([10,20,30,40,50],index=['a','b','c','d','e'])
print(series[:])
print(series['b':'d'])
a    10
b    20
c    30
d    40
e    50
dtype: int64
b    20
c    30
d    40
dtype: int64

4.4、loc与iloc

        loc与iloc也是Series对象的属性,它们的作用就是用来访问Series中的元素,loc是基 于标签的索引,iloc是基于位置的索引。

import pandas as pd
series = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])
print(series.loc['a'])
print(series.iloc[0:2])
print(series.iloc[2])
10
a    10
b    20
dtype: int64
30

4.5、at与iat

        at与iat也是Series对象的属性,可以用来访问元素,at是基于标签的索引,iat是基于 位置的索引。

import pandas as pd
series = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])
print(series.at['a'])
print(series.iat[0])
print(series.iat[2])
10
10
30

4.6、head

        head是Series对象的方法,用于快速查看 Series数据的开头部分内容。

series.head(n=None)
描述说明
n是可选参数,用于指定要返回的行数。如果不提供该参数,默认值为5。
import pandas as pd
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
index = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
series = pd.Series(data, index=index)
print(series.head())
a    10
b    20
c    30
d    40
e    50
dtype: int64

4.7、tail

        tail的用法与head类似,但不同的是,它用于快速查看Series数据的末尾部分内容。

series.tail(n=None)
描述说明
n是可选参数,用于指定要返回的行数。若不提供该参数,默认值为5。
import pandas as pd
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
index = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
series = pd.Series(data, index=index)
print(series.tail())
f     60
g     70
h     80
i     90
j    100
dtype: int64

4.8、isin

        该函数用于判断 Series中的每个元素是否在指定的一组值中,它会返回一个与原 Series长度相同的布尔型Series, 其中对应位置为True表示该位置的元素在指定 的值集合中,False则表示不在。

series.isin(values)
描述说明
values是一个可迭代对象(如列表、元组、集合等),用于指定要进行判断 的一组值。
import pandas as pd
data = [10, 20, 30, 40, 50]
series = pd.Series(data)
values_to_check = [20, 40]
result = series.isin(values_to_check)
print(result)
0    False
1     True
2    False
3     True
4    False
dtype: bool

4.9、get

        Series.get 方法用于通过标签来获取Series中的元素。

Series.get(key, default=None)
描述说明
key你想要获取的元素的标签。
default可选参数,如果 key不在标签中,返回这个默认值。如果没有指定,默认为 None。
import pandas as pd
s = pd.Series(['apple', 'banana', 'cherry'], index=[1, 2, 3])
print(s.get(2)) 
print(s.get(4, 'Not Found'))
banana
Not Found

五、思维导图

 

 

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

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

相关文章

小程序配置

注册小程序账号和安装开发工具 参考文档&#xff1a;注册小程序账号和安装开发工具https://blog.csdn.net/aystl_gss/article/details/127878658 HBuilder新建项目 填写项目名称&#xff0c;选择UNI-APP&#xff0c;修改路径&#xff0c;点击创建 manifest.json 配置 需要分别…

前端UI编程基础知识:基础三要素(结构→表现→行为)

以下是重新梳理的前端UI编程基础知识体系&#xff0c;结合最新技术趋势与实战要点&#xff0c;以更适合快速掌握的逻辑结构呈现&#xff1a; 一、基础三要素&#xff08;结构→表现→行为&#xff09; 1. HTML5 核心能力 • 语义化标签&#xff1a;<header>, <nav&g…

【eNSP实战】将路由器配置为DHCP服务器

拓图 要求&#xff1a; 为 office100 和 office200 分别配置地址池 AR1接口配置 interface GigabitEthernet0/0/0ip address 192.168.100.1 255.255.255.0 # interface GigabitEthernet0/0/1ip address 192.168.200.1 255.255.255.0 AR1路由器上创建office100地址池 [AR1…

Stable Diffusion 模型具体如何设置参数?

基础参数设置 随机种子&#xff08;seed&#xff09;&#xff1a;设置一个固定的随机种子值&#xff0c;可以确保在相同文本提示下生成相同的图像。如果设置为-1&#xff0c;则每次生成的图像都是随机的。 num_inference_steps&#xff1a;控制模型推理的步数。步数越多&#…

阿里云服务器购买及环境搭建宝塔部署springboot和vue项目

云服务器ECS_云主机_服务器托管_计算-阿里云 一、前言 对于新手或者学生党来说&#xff0c;有时候就想租一个云服务器来玩玩或者练练手&#xff0c;duck不必花那么多钱去租个服务器。这些云服务厂商对学生和新手还是相当友好的。下面将教你如何快速搭建自己的阿里云服务器&…

ABAP语言的动态编程(4) - 综合案例:管理费用明细表

本篇来实现一个综合案例&#xff1a;管理费用明细表。报表在实际项目中&#xff0c;也有一定的参考意义&#xff0c;一方面展示类似的报表&#xff0c;比如管理费用、研发费用等费用的明细&#xff0c;使用业务比较习惯的展示格式&#xff1b;另一方面正好综合运用前面学习的动…

【Python办公】Excel通用匹配工具(双表互匹)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…

2025-03-15 吴恩达机器学习2——线性回归模型

文章目录 1 概述1.1 案例1.2 分析 2 代价函数2.1 代价函数公式2.2 理解代价函数2.3 可视化代价函数 3 梯度下降3.1 实现步骤3.2 理解梯度下降3.3 学习率 4 最佳实践4.1 导入数据4.2 代码实现4.3 可视化 1 概述 ​ 线性回归模型是使用最广泛的学习算法&#xff0c;让我们从一个…

Webpack 前端性能优化全攻略

文章目录 1. 性能优化全景图1.1 优化维度概览1.2 优化效果指标 2. 构建速度优化2.1 缓存策略2.2 并行处理2.3 减少构建范围 3. 输出质量优化3.1 代码分割3.2 Tree Shaking3.3 压缩优化 4. 运行时性能优化4.1 懒加载4.2 预加载4.3 资源优化 5. 高级优化策略5.1 持久化缓存5.2 模…

实验篇| CentOS 7 下 Keepalived + Nginx 实现双机高可用

为什么要做双机高可用&#xff1f;‌ 想象一下&#xff1a;你的网站突然宕机&#xff0c;用户无法访问&#xff0c;订单流失、口碑暴跌…&#x1f4b8; ‌双机热备‌就是解决这个痛点的终极方案&#xff01;两台服务器互为备份&#xff0c;724小时无缝切换&#xff0c;保障业务…

C语言【内存函数】详解加模拟实现

目录&#xff1a; 1. memcpy使用和模拟实现 2. memmove使用和模拟实现 3. memset函数的使用 4. memcmp函数的使用 以上函数均包含在一个头文件<string.h>里面 一、memcpy的使用和模拟实现。 memcpy函数介绍&#xff1a; 函数原型&#xff1a; void * memcpy ( void…

Flutter——Android与Flutter混合开发详细教程

目录 1.创建FlutterModule项目&#xff0c;相当于Android项目里面的module库&#xff1b;2.或者编辑aar引用3.创建Android原生项目3.直接运行跑起来 1.创建FlutterModule项目&#xff0c;相当于Android项目里面的module库&#xff1b; 2.或者编辑aar引用 执行 flutter build a…

Windows根据文件名批量在文件夹里查找文件并复制出来,用WPF实现的详细步骤

项目前言 在日常工作和生活中&#xff0c;我们常常会遇到需要从大量文件中根据文件名批量查找特定文件并复制到指定位置的情况。手动一个个查找和复制文件不仅效率低下&#xff0c;还容易出错。使用 Windows Presentation Foundation (WPF) 可以创建一个用户友好的图形界面应用…

matlab 控制系统GUI设计-PID控制超前滞后控制

1、内容简介 matlab164-控制系统GUI设计-PID控制超前滞后控制 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略

【大模型基础_毛玉仁】2.4 基于 Encoder-Decoder 架构的大语言模型

更多内容&#xff1a;XiaoJ的知识星球 目录 2.4 基于 Encoder-Decoder 架构的大语言模型2.4.1 Encoder-Decoder 架构2.4.2 T5 语言模型1&#xff09;T5 模型结构2&#xff09;T5 预训练方式3&#xff09;T5 下游任务 2.4.3 BART 语言模型1&#xff09;BART 模型结构2&#xff0…

AI智能代码疫苗技术,赋能数字化应用内生安全自免疫

“DevSecOps市占率持续领先&#xff0c;IAST探针覆盖率十倍增长&#xff0c;代码疫苗技术已成功帮助上千家行业用户成功抵御‘Log4j2.x’等重大未知漏洞的利用攻击。”子芽在腾讯专访中透露。 这是2021年悬镜安全交出的一张成绩单。悬镜安全是DevSecOps敏捷安全先行者&#xf…

【初级篇】如何使用DeepSeek和Dify构建高效的企业级智能客服系统

在当今数字化时代,企业面临着日益增长的客户服务需求。使用Dify创建智能客服不仅能够提升客户体验,还能显著提高企业的运营效率。关于DIfy的安装部署,大家可以参考之前的文章: 【入门级篇】Dify安装+DeepSeek模型配置保姆级教程_mindie dify deepseek-CSDN博客 AI智能客服…

【机器学习-基础知识】统计和贝叶斯推断

1. 概率论基本概念回顾 1. 概率分布 定义: 概率分布(Probability Distribution)指的是随机变量所有可能取值及其对应概率的集合。它描述了一个随机变量可能取的所有值以及每个值被取到的概率。 对于离散型随机变量,使用概率质量函数来描述。对于连续型随机变量,使用概率…

正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-4 uboot目录分析

前言&#xff1a; 本文是根据哔哩哔哩网站上“Arm(iMX6U)Linux系统移植和根文件系统构键篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。 引用&#xff1a; …

视频AI方案:数据+算力+算法,人工智能的三大基石

背景分析 随着信息技术的迅猛发展&#xff0c;人工智能&#xff08;AI&#xff09;已经逐渐渗透到我们生活的各个领域&#xff0c;从智能家居到自动驾驶&#xff0c;从医疗诊断到金融风控&#xff0c;AI的应用正在改变着我们的生活方式。而数据、算法和算力&#xff0c;正是构…