目录
Series类型Series的三种创建方式通过数组创建Series创建指定索引列的Series使用字典创建标量创建Series对象Series的常见操作Series的值访问访问整个series获取索引列设置名称Series数据编辑Series数据删除drop方法pop方法del方法Series数据添加append方法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
s2-----
tom 001
jack 002
dtype: object
s3-----
tom 001
jack 002
Jim 003
dtype: object
s4-----
tom 001
jack 002
Jim 003
dtype: object
s5-----
tom 001
jack 002
dtype: object
访问整个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"]
s2-----
[ 90 40 100]
获取索引列
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
s1_index-----
Int64Index([90, 100, 60], dtype="int64")
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
到此这篇关于pandas数据类型之Series的具体使用的文章就介绍到这了,更多相关pandas Series内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 2AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 3转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 4充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 5好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 6名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 7亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 8京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 9网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 10市场竞争加剧,有车企因经营不善出现破产、退网、退市