【玩转pandas系列】pandas数据结构—Series

这篇具有很好参考价值的文章主要介绍了【玩转pandas系列】pandas数据结构—Series。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

大家好!我是一朵向阳花(花花花),本期跟大家分享的知识是 pandas 数据结构——Series。

作者的【 Python 数据分析】专栏正在火热更新中,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 !

每日金句分享:愿你有一天,能和你最重要的人重逢。』—— 艾拉「可塑性记忆」

一、Series的创建

Series 是一种类似于一维数组的对象,由下面两部分组成:

  • values:一组数据,ndarray 类型
  • index:数据索引

顾名思义,我们在创建 Series 对象时,需要传递一组数据,该数据大多数时候是可迭代对象。因此,下面三种创建方式都是将数据传入到 Series 方法中。

1.1 列表创建

list1 = list('ABCD') # 创建列表
s =pd.Series(list1) # 传递列表数据到 Series 方法中
print(s)
print(type(s.values))
print(type(s.index))

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

1.2 NumPy数组创建

n = np.array(range(5,10))
s2 = pd.Series(n)
s2

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

1.3 字典创建

前两种方式,都是只传递了数据,那么索引是默认索引(0 ~ N-1);下面的字典创建方式,则是以字典的键为索引,字典的值为数据。

d = {
'a':11,'b':22,'c':33,'d':44
}
s = pd.Series(d)
s

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

二、Series索引

从以上 Series 的创建中我们可以看出,Series 的索引是可以修改的 。我们先来探讨以下索引的作用。

  • 获取元素

有多种获取方式,s.索引名,s[‘索引名’],s.loc[‘索引名’]

  • 允许修改

(为 s.index 重新赋值即可,注意前后数量一致)

显式即表示使用索引名称的方式,隐式即表示使用序号的方式。后面的显式切片和隐式切片也是同理。

2.1 显式索引

取单个值时,三种方式:(假设 Series 对象名为 s

  • s.索引名(数字索引不能用这种方式)
  • s[‘索引名’]
  • s.loc[‘索引名’]

取多个值时,返回一个新的 Series 对象,两种方式(也就是加中括号):

  • s.[[‘索引名1’,‘索引名2’]]
  • s.loc[[‘索引名1’,‘索引名2’]]
s = pd.Series(np.array(range(5,10)),index=list('abcde'),name='number')
print(s)
display(s.a,s['a'],s.loc['a'])

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

2.2 隐式索引

隐式索引和显示索引的区别就是它通过数字来获取值。因为是数字,因此 s.number 这种方式肯定 不能用了 ,其他都相同。

取单值,两种方式

  • s[number]
  • s.iloc[number]

取多值,两种方式

  • s[[number1,number2]]
  • s.iloc[[number1,number2]]
s = pd.Series(np.array(range(5,10)),index=list('abcde'),name='number')
print(s)
print('取单值')
print(s[1])
print(s.iloc[1])
print('取多值')
print(s[[1,2]])
print(s.iloc[[1,2]])

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

三、Series切片

切片操作是获取一个新的 Series 对象的操作,显式切片是为左闭右臂,隐式切片时为左闭右开

2.1 显式切片

两种方式:

  • s[索引名1:索引名2]
  • s.loc[索引名1:索引名2]

2.2 隐式切片

两种方式:

  • s[number1:number2]
  • s.iloc[number1:number2]
s = pd.Series({
'yw':100,
'math':150,
'eng':110,
'Python':130
})
print('数据:',end='')
print('-'*10)
print(s)
print('-'*10)
print('显式切片')
print(s['yw':'math'])
print('-'*10)
print(s.loc['yw':'math'])
print('-'*10)
print('隐式切片')
print(s[0:1])
print('-'*10)
print(s.iloc[0:1])

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

四、Series基本属性和方法

Series基本属性和方法是让我们更好了解数据组成的手段。

4.1 属性

属性 作用
s.shape 查看数据行列
s.ndim 查看维度,Series 就是一维,ndim 恒等于1
s.size 查看数据总数
s.index 查看索引
s.values 查看数据
s.name 查看 Series 对象的 name,若未设定则为空

4.2 方法

方法 功能
s.head() 查看前5条数据,若传入数字 n ,则查看前 n 条
s.tail() 查看后5条数据,若传入数字 n ,则查看后 n 条
s.isnull() 判断数据是否为空,空的为 True ,不空的为 False
s.notnull() 判断数据是否不空,空的为 False ,不空的为 True

4.3 案例——使用 bool 值去除空值

原理:Series 切片可以再传入一个 Series 对象,该 Series 对象索引要和原来相同,那么值为 False 的将不会被取出。

请看示例:

s = pd.Series(['a','e','f','b'])
s[pd.Series([True,True,False,True])]

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构
如果改为:

s = pd.Series(['a','e','f','b'])
s[pd.Series([True,True,False,True],index=list('abcd'))]

那么将会报错:

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

下面是 Series 去除空值的案例。

s = pd.Series(['zhangsan','lisi','a',np.NAN,None])
print('数据:'+'-'*10)
print(s)
conditon = s.isnull()
print('判空情况:'+'-'*10)
print(conditon)
# 使用 bool 值索引过滤数据
s = s[~conditon]
print('过滤结果:'+'-'*10)
print(s)

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

五、Series运算

Series 运算包括算术运算和 Series 对象之间运算。算术运算是针对每一个元素的,有 +、-、*、/、 //、 %、 ** 等,这里不再赘述。Series 对象间的运算,只要记住,索引一个有一个没有时,计算值为 NaN,其他按照算术运算计算即可。

  • 算术运算
s = pd.Series(np.array(range(5,10)))
print(s)
s * 10

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

  • Series对象间的运算
s1 = pd.Series(np.array(range(5,10)))
s2 = pd.Series([3,6,10,12])
print(s1)
print(s2)
s1 + s2 # 索引一个有一个没有时,计算值为 NaN

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

六、Series多层行索引

6.1 Series多层索引的构建

Series 不仅支持单层索引,还支持多层索引。最简单的实现方式就是将 index 设置成多维。

下面以二级行索引为例:

s = pd.Series(np.random.randint(60,100,6),index=[['语文','语文','语文','数学','数学','数学'],['小明','小红','小丽','小明','小红','小丽']])
print(s)

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

6.2 Series多层索引的索引和切片操作

对于 Series 多层索引的索引和切片操作,只要记住以下两点:

  • 要先取第一层,再取第二层,不能直接取第二层索引
  • 获取到第一层之后,就是一个普通的单层索引 Series
  • 隐式索引,直接得到数

具体的方式,还是索引和切片都分为显式和隐式,下面通过一个案例来演示。

索引:

s = pd.Series(np.random.randint(60,100,6),index=[['语文','语文','语文','数学','数学','数学'],['小明','小红','小丽','小明','小红','小丽']])
print(s)
# 索引
print('显式索引:'+'-'*10)
print(s['语文']) # 获取到单层 Series
print(s.loc['语文']) 
print(s['语文']['小明'],s.loc['语文']['小明']) # 获取到单个值
print('隐式索引:'+'-'*10)
print(s.iloc[0])
print(s[0]) # 获取到单个值

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

切片:

s = pd.Series(np.random.randint(60,100,6),index=[['语文','语文','语文','数学','数学','数学'],['小明','小红','小丽','小明','小红','小丽']])
s = s.sort_index()
print(s)
print('显式切片'+'-'*10)
print(s['数学':'语文'])
print(s.loc['数学':'语文'])
print('隐式切片'+'-'*10)
print(s[0:2])
print(s.iloc[0:2])

【玩转pandas系列】pandas数据结构—Series,Python数据分析,数据分析,pandas,数据结构

结语

💕 本期跟大家分享的 “芝士” 就到此结束了,关于 Series 数据结构,你学会了吗?✨

🍻 我是向阳花花花花,在学习的路上一直前行,期待与你一起进步。~ 🍻

🔥如果文中有些地方不清楚的话,欢迎联系我,我会给大家提供思路及解答。🔥文章来源地址https://www.toymoban.com/news/detail-616034.html

相关导读

文章直达 链接
上期回顾 【数据分析 - 基础入门之pandas篇①】- pandas介绍
下期预告 【数据分析 - 基础入门之pandas篇③】- pandas数据结构——DataFrame

到了这里,关于【玩转pandas系列】pandas数据结构—Series的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【玩转pandas系列】数据清洗(文末送书)

    本文介绍在数据分析中如何使用 pandas 进行数据清洗,是 pandas 学习阶段的 重点 ,没有之一。 pandas中用于重复值检测的是 duplicated() 函数,可以用于检测行或列是否前后重复,返回值是 bool 类型。True 表示重复,False 表示不重复。 函数参数: keep :默认情况下 keep = first ,表

    2024年02月14日
    浏览(35)
  • pandas基础知识、Series结构

    一、pandas是什么? 二、pandas库下载和安装 三、pandas Series结构 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 1.pandas 主要特点 : 它提供了一个简单、高效、带有默认标签(也可以自定义标签)的 DataFrame 对象。 能够快速得从不同格式的文件中加载

    2024年02月20日
    浏览(31)
  • 【Python】数据科学工具(Numpy Pandas np.array() 创建访问数组 向量与矩阵 Series DataFrame)

    1.Numpy numpy是Python中一个非常重要的科学计算库,其最基础的功能就是N维数组对象——ndarray。 1.1 数组的创建 1)np.array() 用 np.array() 函数可以将Python的序列对象(如列表、元组)转换为ndarray数组。 2)arange、linspace、logspace np.arange(start, stop, step) :创建一个一维数组,其中的值

    2024年02月10日
    浏览(48)
  • 08-pandas 入门-pandas的数据结构

    要使用pandas,你首先就得熟悉它的两个主要数据结构:Series和DataFrame。虽然它们并不能解决所有问题,但它们为大多数应用提供了一种可靠的、易于使用的基础。 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)

    2024年02月11日
    浏览(37)
  • 玩转顺序表——【数据结构】

    在C语言学习中,我们经常会遇见增删查改等一系列操作,而这些操作全都与线性表关联,没有线性表将会对这些操作完成的十分艰难!那今天就让我们来了解一下顺序表如何增删查改!!! 目录 1.线性表 2.顺序表  2.1概念及结构 3.对顺序表的实现  3.1创建动态内容结构体

    2024年02月14日
    浏览(36)
  • 【数据分析 - 基础入门之pandas篇③】- pandas数据结构——DataFrame

    大家好!我是一朵向阳花(花花花)🍭,本期跟大家分享的知识是 pandas 数据结构——DataFrame。 作者的【 Python 数据分析】专栏正在火热更新中🔥,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 ! 每日金句分享: 慢慢来,谁还没有一个努力的过程。』—— pony「网易云

    2024年02月16日
    浏览(44)
  • 【pandas基础】--核心数据结构

    pandas 中用来承载数据的两个最重要的结构分别是: Series:相当于增强版的一维数组 DataFrame:相当于增强版的二维数组 pandas 最大的优势在于处理表格类数据,如果数据维度超过二维,一般我们会使用另一个 python 的库 numpy 。 本篇主要介绍这两种核心数据结构的创建方式。

    2024年02月03日
    浏览(37)
  • Python中List类型数据结构广泛应用于各种场景中。然而,在数据分析和可视化过程中,经常需要将List转换为Pandas的DataFrame对象。那么如何将...

    Python中List类型数据结构广泛应用于各种场景中。然而,在数据分析和可视化过程中,经常需要将List转换为Pandas的DataFrame对象。那么如何将List转换为DataFrame对象呢?本文将介绍如何使用Python中Pandas库将List转换为DataFrame,并进一步将其转换为字符串。 将Python List转换为Pandas D

    2024年02月15日
    浏览(52)
  • Python Pandas - Series introduction

    目录 一 创建 1 直输创建  2 用arange创建  3 结合字典  二 访问 1 用index访问values 2 表达式 条件访问 三  扩充 1  用index 增删 2 补充 isnull、notnull Series包含了一个值序列,且包含了数据标签(索引) from pandas import Series 1 直输创建 ① 默认序列index a = [1, 2 ,3 ] s = Series ( a )    查

    2024年02月14日
    浏览(40)
  • 玩转带头双向链表——【数据结构】

    W...Y的主页 今天我们接着来说数据结构——带头双向链表 目录 带头双向链表的实现 结构体的创建 初始化兵创建哨兵节点 释放链表所以内容  打印链表函数 尾插 尾删 头插 ​编辑 头删 计数函数实现 查找数据相应位置函数 在pos位置之前插入  在pos位置删除  顺序表与链表的

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包