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

news2025/3/16 7:31:43

一、一维数组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.coloradmin.cn/o/2315887.html

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

相关文章

java数据结构(复杂度)

一.时间复杂度和空间复杂度 1.时间复杂度 衡量一个程序好坏的标准&#xff0c;除了能处理各种异常&#xff0c;还有就是时间效率&#xff0c;当然&#xff0c;对于一些配置好的电脑数据处理起来就是比配置低的高&#xff0c;但从后期发展来看&#xff0c;当数据量足够庞大时&…

windows协议不再续签,华为再无windows可用,将于四月发布鸿蒙PC

大家好&#xff0c;我是国货系创始人张云泽&#xff0c;最近不少小伙伴在后台问&#xff1a;“听说Windows协议要到期了&#xff1f;我的电脑会不会变砖&#xff1f;”还有人说&#xff1a;“华为笔记本以后用不了Windows了&#xff1f;鸿蒙系统能用吗&#xff1f;”今天咱们就…

HTML+CSS基础(了解水平)

html 的介绍 学习目标 能够知道html的作用 1. html的定义 2. html的定义 HTML 的全称为&#xff1a;HyperText Mark-up Language, 指的是超文本标记语言。 标记&#xff1a;就是标签, <标签名称> </标签名称>, 比如: <html></html>、<h1><…

[设计模式]1_设计模式概览

摘要&#xff1a;设计模式原则、设计模式的划分与简要概括&#xff0c;怎么使用重构获得设计模式并改善代码的坏味道。 本篇作概览与检索用&#xff0c;后续结合源码进行具体模式深入学习。 目录 1、设计模式原理 核心原则&#xff08;语言无关&#xff09; 本质原理图 原…

Elasticsearch集群与日志系统实战部署指南

一、环境规划与初始化配置 1. 服务器资源分配 IP地址部署服务主机名172.25.23.7ES Kafka Zookeeper Kibananode1172.25.23.8ES Kafka Zookeeper Filebeatnode2172.25.23.9Kafka Zookeeper Apache Logstashnode3 系统要求&#xff1a; 配置&#xff1a;4核CPU / 4G…

SFT数据处理部分的思考

SFT数据及处理的业内共识 1&#xff0e;prompt的质量和多样性远重要于数据量级&#xff0c;微调一个 30 b 量级的base model只需要 10 w 量级的数据即可 参考&#xff1a;《LIMA&#xff1a;Less Is More for Alignment》 2&#xff0e;合成数据很重要&#xff01;一般需要通过…

netsh实现TCP端口转发

服务器&#xff1a;192.168.31.9 端口&#xff1a;56000 客户端&#xff1a;192.168.31.2 端口&#xff1a;5600 客户端&#xff08;本地端口5600&#xff09;通过TCP连接服务器的56000端口 PC&#xff1a;192.168.31.5&#xff0c;PC实现客户端和服务器之间56000端口转发 1. …

leetcode 75.颜色分类(荷兰国旗问题)

题目描述 题目分析 本题是经典的「荷兰国旗问题」&#xff0c;由计算机科学家 Edsger W. Dijkstra 首先提出。 要想单独解决这道题本身还是很简单的&#xff0c;统计0、1、2的数量然后按顺序赋值&#xff0c;或者手写一个冒泡排序&#xff0c;whatever。 但是在这一题中我们主…

在windows上通过idea搭建doris fe的开发环境(快速成功版)

一、前置环境准备 1. 准备Linux环境&#xff0c;我起的虚机&#xff0c;使用CentOS8&#xff0c;4核、12G&#xff0c;磁盘50G 1.1.备份yum源 # 系统下载连接&#xff1a;magnet:?xturn:btih:9DB46A612D04763AA7DB02A0FF63EDE2EA555867&dnCentOS-8.1.1911-x86_64-dvd1.…

MyBatis源码分析の配置文件解析

文章目录 前言一、SqlSessionFactoryBuilder1.1、XMLConfigBuilder1.2、parse 二、mappers标签的解析2.1、cacheElement2.1.1、缓存策略 2.2、buildStatementFromContext2.2.1、sql的解析 前言 本篇主要介绍MyBatis源码中的配置文件解析部分。MyBatis是对于传统JDBC的封装&…

python爬虫笔记(一)

文章目录 html基础标签和下划线无序列表和有序列表表格加边框 html的属性a标签&#xff08;网站&#xff09;target属性换行线和水平分割线 图片设置宽高width&#xff0c;height html区块——块元素与行内元素块元素与行内元素块元素举例行内元素举例 表单from标签type属性pla…

DC-6靶机详解

一、主机发现 arp-scan -l靶机ip为192.168.55.159 二、端口扫描、目录枚举、指纹识别、 2.1端口扫描 nmap 192.168.55.159发现没有开放特殊端口 看来信息收集的重点要放在网页中了 2.2目录枚举 dirb http://192.168.55.1592.3指纹识别 nmap 192.168.55.159 -sV -sC -O …

STM32-SPI通信外设

目录 一&#xff1a;SPI外设简介 SPI框图​编辑 SPI逻辑 ​编辑 主模式全双工连续传输 ​编辑 非连续传输 二&#xff1a;硬件SPI读写W25Q64 1.接线&#xff1a; 2. 代码 SPI外设的初始化 生成时序 一&#xff1a;SPI外设简介 STM32内部集成了硬件SPI收发电路&#…

远程控制中的云电脑是什么意思?1分钟学会用

很多常用我们ToDesk远程控制的朋友们或许会注意到无论是在PC端还是移动端中都出现有【云电脑】【来云电脑爽玩-新用户免费1小时】这些词句等信息。那么这究竟是代表什么意思呐&#xff1f;云电脑是什么又怎么用呐&#xff1f;为什么要增加云电脑&#xff1f;以下小编就为大家科…

网络爬虫【简介】

我叫补三补四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲视图 一、网络爬虫的定义 网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;又称为网络蜘蛛、网络机器人等&#xff0c;是一种按照一定规则自动抓取互联网信息的程序或脚本。它…

2024华东师范大学计算机复试上机真题

2024华东师范大学计算机复试机试真题 2023华东师范大学计算机复试机试真题 2022华东师范大学计算机复试机试真题 2024华东师范大学计算机复试上机真题 2023华东师范大学计算机复试上机真题 2022华东师范大学计算机复试上机真题 在线评测&#xff1a;传动门&#xff1a;pgcode…

14.使用各种读写包操作 Excel 文件:辅助模块

一 各种读写包 这些是 pandas 在底层使用的各种读写包。无须安装 pandas&#xff0c;直接使用这些读写包就能够读写 Excel 工作簿。可以尽可能地使用 pandas 来解决这类问题&#xff0c;只在 pandas 没有提供你所需要的功能时才用到读写包。 表中没有 xlwings &#xff0c;因为…

Python数据分析之数据可视化

Python 数据分析重点知识点 本系列不同其他的知识点讲解&#xff0c;力求通过例子让新同学学习用法&#xff0c;帮助老同学快速回忆知识点 可视化系列&#xff1a; Python基础数据分析工具数据处理与分析数据可视化机器学习基础 四、数据可视化 图表类型与选择 根据数据特…

1、操作系统引论

一、操作系统 会使用linux系统 建议大家先学会linux的基础指令&#xff0c;可以看菜鸟教程网站进行学习。 1、各种定义 操作系统定义 管理计算机的 硬件 和软件资源&#xff0c; 能对各类作业进行调度&#xff0c;方便用户使用计算机的程序集合。操作系统运行在内核态&#xf…

HarmonyOS NEXT - 网络请求问题(http)

HTTP&#xff08;HyperText Transfer Protocal&#xff0c;超文本传输协议&#xff09;是一种用于传输超媒体文档&#xff08;如HTML&#xff09;的应用层协议&#xff0c;它是客户端和服务器之间通信的基础&#xff1b;无论是获取数据、提交表单、上传文件&#xff0c;HTTP都扮…