【Pandas】数据结构Series 基本用法总结

对Series数据结构的理解:

(1)Series是Pandas中的数据结构;
(2)Series是DataFrame的一列数据;
(3)Series的索引,默认为0,1,2,3,4,5...,与列表不同的是Series的index可以自定义,列表不能自定义索引;
(4)Series有名字name,相当于列名;
(5)Series数据是对列表的封装;

总结:Series是由一维数组组成,具有索引和name的一种数据结构,且可以自定义索引的一种数据结构。 

Series的数据结构
位置索引标签索引值(name)
0a1
1b2
2c3
3d4
4e5

目录

一、 Series数据的创建

二、Series数据的索引(标签)

2.1Series数据的索引

2.2通过索引查找Series的值

2.3Series数据的删除

2.4Series元素的修改

三、Series的算数运算和数据对齐

3.1Series的算数运算

3.2Series数据对齐

四、Series的常见用法

五、Series数据基本操作总结


一、 Series数据的创建

import pandas as pd
import numpy as np
#通过数组创建
arr=np.arange(5)
s=pd.Series(arr,name='A')
#通过列表创建
lista=[0,1,2,3,4]
s=pd.Series(lista,name='A')
#通过字典创建,字典的键为索引,值为Series的值
dicta={0:0,1:1,2:2,3:3,4:4}
s=pd.Series(dicta,name='A')
s

Series数据可以通过数组,列表,字典来创建,在创建的过程中可以定义name和index。

二、Series数据的索引(标签)

2.1Series数据的索引

Series数据的默认索引为0,1,2,3,4,5...,也称位置索引或隐式索引,后文称位置索引。自定义索引后,后文称为标签索引,任然可以以位置索引访问Series。

2.2通过索引查找Series的值

s=pd.Series(np.arange(5),name='A',index=['a','b','c','d','e'])
#通过位置索引
#单个值
s[2]
#使用属性索引
s.c
#多个值
s[2:4]
#通过标签索引
#单个值
s['c']
#多个值
s[['c','d']]

Series通过位置索引和标签索引都可以访问元素,使用位置索引访问时,与列表一样,使用切片的方式;使用标签索引时,访问一个值标签放在‘[ ]’内,访问多个值,标签放在'[[ ]]'。

2.3Series数据的删除

#Series元素的删除
s=pd.Series(np.arange(5),name='A',index=['a','b','c','d','e'])
#单个值删除
# s.drop('c',inplace=True)
#多个值删除
s.drop(['c','e'],inplace=True)
s

Series数据的删除,使用s.drop()函数,删除单个值为索引,inplace参数为是否作用在原数据上。

2.4Series元素的修改

#Series元素的修改
#修改单个值
s.b=5
s[1]=5
#修改多个值
s[:2]=[8,9]
s

Series元素的修改,使用Series切片的方式,修改方式与列表一样。

三、Series的算数运算和数据对齐

3.1Series的算数运算

# Series的算数运算
s1=pd.Series(np.arange(5),name='A',index=['a','b','c','d','e'])
s2=pd.Series(np.arange(5,10),name='A',index=['a','b','c','d','e'])
s3=pd.Series(np.arange(5,10),name='B',index=['a','b','c','d','f'])
s4=pd.Series(['张三','李四','王五','赵六','麻七'],index=['a','b','c','d','e'])
s5=pd.Series(['1','2','3','4','5'],name='序号',index=['a','b','c','d','e'])
print(s1+s2)
print('='*100)
print(s1+s3)
print('='*100)
print(s4+s5)
print('='*100)

 (1)我们定义了5个Series数据结构,s1,s2,s3的数据类型为int32,s1与s2相加,得到了一个新的Series,如下:

 两个int32的Series数据相加,得到了数据的和。

(2)s3改变了一个Series数据的索引,将索引'e'改为'f',s1+s3结果如下:

 显而易见,两个'int32'的Series相加,是将对应索引上面的数值相加,如果没有对应索引,返回空值。

(3)s4与s5的的数值类型为'object',s4+s5得到的结果为:

 两个‘object’的Series相加,会将对应索引的元素进行拼接,其拼接形式与字符串的拼接一致。

3.2Series数据对齐

Series的数据对齐是指pandas自动将数据转换为统一的数值类型。

#数据对齐
s1=pd.Series([1,2,3,None,4],name='A',index=['a','b','c','d','e'])
s2=pd.Series([1,2,3,'',4],name='A',index=['a','b','c','d','e'])
print(s1)
print('='*140)
print(s2)

现在有两组Series数据,数据内的数值类型不一致,运行输出s1和s2,s1的dtype为数值型‘float64’,s2的dtype为字符串型‘object’,我们将这种自动统一数值类型的方式叫做数据对齐。在实际的应用过程中,要特别注意,如果数值类型不一致,需要进行转换。

四、Series的常见用法

#空值判断
s=pd.Series([1,2,3,np.nan,4,2],name='A',index=['a','b','c','d','e','f'])
s.isnull()
s.notnull()
#重复值查看
s=pd.Series([1,2,3,np.nan,4,2],name='A',index=['a','b','c','d','e','f'])
print(s.duplicated())
#删除重复值
s.drop_duplicates(inplace=True)
s
#显示唯一值
s=pd.Series([1,2,3,np.nan,4,2],name='A',index=['a','b','c','d','e','f'])
s.unique()
#统计性描述分析
s=pd.Series([1,2,3,np.nan,4,2],name='A',index=['a','b','c','d','e','f'])
s.describe()
#重置索引
s=pd.Series([1,2,3,np.nan,4,2],name='A',index=['a','b','c','d','e','f'])
s1=pd.Series(np.arange(5,11))
s.reset_index(drop=True)

五、Series数据基本操作总结

Series数据的基本操作总结
Series的创建通过数组创建pd.Series(数组,name,index)
通过列表创建pd.Series(列表,name,index)
通过字典创建pd.Series({索引:值...},name)
Series的索引位置索引Series[位置索引]
标签索引Series[[标签索引]]
Series的删除Series.drop(索引) 
Series的修改Series[位置索引]=值 
Series的算数运算数值型相加数值型相加,返回对应位置的和
字符串型相加字符串拼接
Series的数据对齐统一Series的数据类型 
Series的常见用法空值判断Series.isnull()
非空值判断Series.notnull()
查看重复值Series.duplicated()
删除重复值Series.drop_duplicates(inplace=True)
查看唯一值Series.unique()
描述性统计分析Series.describe()
重置索引Series.reset_index(drop=True)
  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜WiFi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值