百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

第二章:深入了解 Pandas 的 Series

itomcoil 2025-08-06 20:25 2 浏览

2.1 Series 的基本属性

2.1.1 index(索引)

  • 含义:index 属性返回 Series 的索引。通过它可以查看、修改 Series 的索引值。索引就像是数据的“地址标签”,方便我们定位和选取数据。
  • 示例
import pandas as pd

data = [10, 20, 30, 40]
series = pd.Series(data)
print(series.index)

# 修改索引
new_index = ['one', 'two', 'three', 'four']
series.index = new_index
print(series.index)

在上述代码中,首先创建了一个 Series 并打印其默认索引,会输出 RangeIndex(start = 0, stop = 4, step = 1),这是从 0 到 3 的整数范围索引。然后修改索引为自定义的 ['one', 'two', 'three', 'four'],再次打印索引就会看到新的索引值。

2.1.2 values(值)

  • 含义:values 属性返回 Series 中的数据值,以 Numpy 数组的形式呈现。因为 Pandas 是基于 Numpy 构建的,所以这里返回的是 Numpy 数组,方便进行各种数值计算。
  • 示例
import pandas as pd

data = [10, 20, 30, 40]
series = pd.Series(data)
print(series.values)

运行代码,会输出 [10 20 30 40],这就是 Series 中的数据值以 Numpy 数组形式展示。

2.1.3 dtype(数据类型)

  • 含义:dtype 属性表示 Series 中数据的数据类型。和 Numpy 数组类似,Series 中的数据通常具有相同的数据类型,这有助于提高存储和计算效率。
  • 示例
import pandas as pd

int_series = pd.Series([1, 2, 3])
float_series = pd.Series([1.0, 2.0, 3.0])
print(int_series.dtype)
print(float_series.dtype)

int_series 的数据类型为 int64,表示 64 位整数;float_series 的数据类型为 float64,表示 64 位浮点数。

2.2 Series 的索引与选取数据

2.2.1 通过整数索引选取数据

和 Python 列表类似,可以通过整数索引来选取 Series 中的单个数据或数据片段。索引从 0 开始。

  • 示例
import pandas as pd

data = [10, 20, 30, 40]
series = pd.Series(data)
print(series[2])  # 选取索引为 2 的数据
print(series[1:3])  # 选取索引 1 到 2 的数据(不包含索引 3)

series[2] 会输出 30,series[1:3] 会输出:

1    20
2    30
dtype: int64

2.2.2 通过自定义索引选取数据

如果 Series 使用了自定义索引,就可以通过自定义的索引值来选取数据。

  • 示例
import pandas as pd

data = [10, 20, 30, 40]
index = ['a', 'b', 'c', 'd']
series = pd.Series(data, index = index)
print(series['b'])  # 选取索引为 'b' 的数据
print(series[['a', 'c']])  # 选取索引为 'a' 和 'c' 的数据

series['b'] 输出 20,series[['a', 'c']] 输出:

a    10
c    30
dtype: int64

2.2.3 通过布尔索引选取数据

可以根据条件创建布尔值的 Series,然后用它来选取满足条件的数据。

  • 示例
import pandas as pd

data = [10, 20, 30, 40]
series = pd.Series(data)
bool_index = series > 20
print(series[bool_index])

这里先创建了一个布尔索引 bool_index,它是根据 series > 20 的条件判断生成的,值为 True 或 False。然后用 series[bool_index] 选取 series 中满足 series > 20 条件的数据,输出为:

2    30
3    40
dtype: int64

2.3 Series 的运算

2.3.1 算术运算

Series 支持各种算术运算,如加法、减法、乘法、除法等。这些运算会自动应用到 Series 的每个元素上。

  • 示例
import pandas as pd

series1 = pd.Series([1, 2, 3])
series2 = pd.Series([4, 5, 6])
add_result = series1 + series2
mul_result = series1 * series2
print(add_result)
print(mul_result)

add_result 为 [5 7 9],是 series1 和 series2 对应元素相加的结果;mul_result 为 [4 10 18],是对应元素相乘的结果。

2.3.2 与标量的运算

Series 还能与单个标量(一个数字)进行运算,标量会与 Series 的每个元素进行相应运算。

  • 示例
import pandas as pd

series = pd.Series([10, 20, 30])
scalar = 2
add_result = series + scalar
div_result = series / scalar
print(add_result)
print(div_result)

add_result 为 [12 22 32],即 series 的每个元素都加上标量 2;div_result 为 [5. 10. 15.],表示 series 的每个元素都除以标量 2。

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...