pandas数据类型之Series的具体使用
作者:weixin_48668114 发布时间:2022-03-30 18:54:46
pandas中包含了DataFrame和Series数据类型,分别表示二维数据结构和一维数据结构。
简单的可以理解为Series为excel表的某一行或者列,DataFrame是多行多列的区域。
Series类型
当我们说excel中某一个列段的数据时(单独的一列), 说第几个数据,我们一般会说,是第几行的数据,那么,可见虽然它是一个一维的数据,但是还有索引的。
Series数据的默认索引为0,1,2,3,4,5…,也称位置索引或隐式索引。自定义索引后,称为标签索引,可以用位置索引和标签访问Series。
Series的三种创建方式
通过数组创建Series
import pandas as pd
import numpy as np
s1 = pd.Series([1,2,3,'tom',True])
s2 = pd.Series(range(0, 10, 1))
print(s1)
print(s2)
print(type(s1), type(s2))
创建指定索引列的Series
索引为数组
s1 = pd.Series([1,2], index=["a", "b"])
s2 = pd.Series(range(10,15,1), index=list('ngjur'))
s3 = pd.Series(range(100,110,2), index=range(4,9,1))
print(s1)
print(s2)
print(s3)
print(s1["a"], s1[1]) #位置索引从0开始
print(s2["r"], s2[-2]) #位置索引从0开始,可以用和列表同样的索引访问方式,-1表示最后一个元素
print(s3[4]) #当定义的索引为数字时,会覆盖之前位置索引的方式,也就是说s3[0]到s3[3],s3[-1]将不能再访问。
a 1
b 2
dtype: int64
n 10
g 11
j 12
u 13
r 14
dtype: int64
4 100
5 102
6 104
7 106
8 108
dtype: int64
1 2
14 13
100
使用字典创建
key为标签索引,value为series的每个元素的值
s1 = pd.Series({'tom':'001', 'jack':'002'})
print(s1)
tom 001
jack 002
dtype: object
标量创建Series对象
如果data是标量值,则必须提供索引
s1 = pd.Series(5, [0, 1, 2, "a"])
print(s1[[1, "a"]])
1 5
a 5
dtype: int64
Series的常见操作
Series的值访问
series_name[],[]内可以为单个位置索引或者标签索引,也可以为位置切片或者标签切片,也可以为位置索引列表或者标签索引列表
s1 = pd.Series({'tom':'001', 'jack':'002', "Jim":"003"})
s2 = s1[["tom", "jack"]] #使用标签索引列表
s3 = s1[0:3] # 使用位置切片
s4 = s1["tom":"Jim"] #使用标签切片
s5 = s1[[0,1]]
print("s1-----\n", s1["tom"], type(s1[1]))
print("s2-----\n", s2, type(s2)) #使用标签索引列表
print("s3-----\n", s3, type(s3)) #使用位置切片
print("s4-----\n", s4, type(s4)) #使用标签切片
print("s5-----\n", s5, type(s5)) #使用位置索引列表
s1-----
001 <class 'str'>
s2-----
tom 001
jack 002
dtype: object <class 'pandas.core.series.Series'>
s3-----
tom 001
jack 002
Jim 003
dtype: object <class 'pandas.core.series.Series'>
s4-----
tom 001
jack 002
Jim 003
dtype: object <class 'pandas.core.series.Series'>
s5-----
tom 001
jack 002
dtype: object <class 'pandas.core.series.Series'>
访问整个series
series_name.values属性
返回numpy.ndarray类型
s1 = pd.Series({'tom':'001', 'jack':'002', "Jim":"003"})
s2 = s1.values
print("s2-----\n", s2, type(s2))
s3 = pd.Series({'tom':90, 'jack':40, "Jim":100})
s2-----
['001' '002' '003'] <class 'numpy.ndarray'>
s2-----
[ 90 40 100] <class 'numpy.ndarray'>
获取索引列
series_name.index
s1 = pd.Series(['tom', 'jack', "Jim"], [90, 100, 60])
print("s1-----\n", s1, type(s1))
s1_index = s1.index
print("s1_index-----\n", s1_index, type(s1_index))
print("s1_name:", s1.name)
s1-----
90 tom
100 jack
60 Jim
dtype: object <class 'pandas.core.series.Series'>
s1_index-----
Int64Index([90, 100, 60], dtype='int64') <class 'pandas.core.indexes.numeric.Int64Index'>
s1_name----- None
设置名称
如果 Series 用于生成 DataFrame,则 Series 的名称将成为其索引或列名称
s1 = pd.Series(np.arange(5), name='ABC',index=['a','b','c','d','e'])
print(s1)
a 0
b 1
c 2
d 3
e 4
Name: ABC, dtype: int32
Series数据编辑
Series数据删除
使用series_name.drop(),指明index,可以为标签索引,或者多个标签索引多个组成的列表,不能为位置索引,或者切片
Series数据删除
drop方法
s1 = pd.Series(np.arange(5), name='A',index=['a','b','c','d','e'])
print(s1)
# 单个值删除,指明标签索引
s1.drop('c',inplace=False) #inplace为False不改变原s1的内容
print("删除单个值,不改变s1:\n",s1)
# 多个值删除,指明标签索引列表
s1.drop(['c','e'],inplace=False)
a 0
b 1
c 2
d 3
e 4
Name: A, dtype: int32
删除单个值,不改变s1:
a 0
b 1
c 2
d 3
e 4
Name: A, dtype: int32a 0
b 1
d 3
Name: A, dtype: int32
# multiindex值的删除
midx = pd.MultiIndex(levels=[['lama', 'cow', 'falcon'],
['speed', 'weight', 'length']],
codes=[[0, 0, 0, 1, 1, 1, 2, 2, 2],
[0, 1, 2, 0, 1, 2, 0, 1, 2]])
s1 = pd.Series([45, 200, 1.2, 30, 250, 1.5, 320, 1, 0.3],
index=midx)
print(s1)
s1.drop(labels='weight', level=1)
lama speed 45.0
weight 200.0
length 1.2
cow speed 30.0
weight 250.0
length 1.5
falcon speed 320.0
weight 1.0
length 0.3
dtype: float64
lama speed 45.0
length 1.2
cow speed 30.0
length 1.5
falcon speed 320.0
length 0.3
dtype: float64
pop方法
pop(x), 指定要pop的标签索引
s1 = pd.Series([1, 2, 3], index=["a", "b", "c"])
s1.pop("a")
print(s1)
b 2
c 3
dtype: int64
del方法
del s1[x], 指定要删除的吗标签索引
s1 = pd.Series([1, 2, 3], index=["a", "b", "c"])
del s1["a"]
print(s1)
b 2
c 3
dtype: int64
Series数据添加
类似于字典中元素的添加方式
s1 = pd.Series([1, 2, 3], index=["a", "b", "c"])
s1["d"] = 4
print(s1)
a 1
b 2
c 3
d 4
dtype: int64
append方法
Pandas Series.append()函数用于连接两个或多个系列对象, 原对象并不改变, 这个和列表不同。
Series.append(to_append, ignore_index=False, verify_integrity=False)
to_append: 系列或系列列表/元组
ignore_indexd: 如果为True,则不要使用索引标签果为True,则在创建具有重复项的索引时引发异常
s1 =pd.Series(["北京", "上海", "台湾", "香港"])
index_list =["a", "b", "c", "d"]
s1.index = index_list
print("s1-----------\n", s1)
s2 = pd.Series({"e": "广州", "f": "深圳"})
print("s2-----------\n", s2)
s3 = s1.append(s2)
print("s3-----------\n", s3)
print(s1)
s4 = s1.append(s2, ignore_index=True)
print("s4-----------\n", s4)
s1-----------
a 北京
b 上海
c 台湾
d 香港
dtype: object
s2-----------
e 广州
f 深圳
dtype: object
s3-----------
a 北京
b 上海
c 台湾
d 香港
e 广州
f 深圳
dtype: object
a 北京
b 上海
c 台湾
d 香港
dtype: object
s4-----------
0 北京
1 上海
2 台湾
3 香港
4 广州
5 深圳
dtype: object
来源:https://blog.csdn.net/weixin_48668114/article/details/126199357


猜你喜欢
- 前言 1. 概述共享坐标轴就是几幅子图之间共享x轴或y轴,这一部分主要了解如何在利用matplotlib制图时共享坐标轴。pyplot.s
- 安装代码pip install python-docx1.批量化往word文件中添加大批量重复的数据from docx import Doc
- 今天来分享一下图,这是一种比较复杂的非线性数据结构,之所以复杂是因为他们的数据元素之间的关系是任意的,而不像树那样 被几个性质定理框住了,元
- 了解如何 在sublime编辑器中安装python软件包,以 实现自动完成等功能,并在sublime编辑器本身中运行build。安装Subl
- CSV 是一种简单的数据格式,通常为电子表格软件所使用。 它主要是由一系列的表格行组成,每行中单元格之间使用逗号(CSV 是 逗号分隔数值(
- 在做实验时,我们常常会使用用开源的数据集进行测试。而Pytorch中内置了许多数据集,这些数据集我们常常使用DataLoader类进行加载。
- EXEC SQL WHENEVER SQLERROR CONTINUE; sqlglm(msg_buffer, &buf
- 1.scrapy_splash是scrapy的一个组件scrapy_splash加载js数据基于Splash来实现的Splash是一个Jav
- --table1 表ID NAME QQ PHONE1 秦云 10102800 135000002 在路上 10378 136000003
- 本博客将为各位分享Python Helium库,其是在 Selenium库基础上封装的更加高级的 Web 自动化工具,它能够通过网页端可见的
- Selenium一、简介selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样selen
- 在实际应用中对于数据进行分析的时候,经常能看见缺失值,下面来介绍一下如何利用pandas来处理缺失值。常见的缺失值处理方式有,过滤、填充。一
- 谈到用户界面交互总少不了事件,前面一系列文章介绍的鼠标光标、坐标、弹出式提示框等实现的底层其实都是事件处理,只不过matplotlib或其他
- 如下所示:import osimport timeimport subprocesssubprocess.Popen(r'cmd
- 一、layui下拉复选实现的背景:实现一个管理员拥有多个权限二、 具体实现://依赖资源<link rel="stylesh
- 有以下一个表movestar(id,name,title,address),内容为:现在要查找所有具有相同的title和address的人s
- 前言;Python是一种非常具有表现力的语言,它提供了不同的结构来简化开发人员的工作。 该列表是python提供的最受欢迎的数据结构之一。
- 当程序出现错误时,系统会自动引发异常。除此之外,Python 也允许程序自行引发异常,自行引发异常使用 raise 语句来完成。很多时候,系
- 1. 直接采用命令行模式更新1.1 搜索框搜索cmd,然后以管理员模式打开1.2 执行命令python -m pip install --u
- 看起来现在经常用到这样的效果来提高用户体验,所以就没事写了一个输入框提示列表的效果使用宽屏的朋友麻烦帮忙测试下,列表的位置有没有错位。代码可