python series去重_python数据分析:Pandas之Series

内容目录Series简介

Series的创建方式

Series索引和切片

Series基本操作

1 Series简介

Pandas 是python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。

pandas的两大主要数据结构 Series和DateFrame,其中Series 是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。轴标签统称为索引,它由两部分组成。values:一组数据(ndarray类型)

index:相关的数据索引标签

形式如下:

特点:数据对齐事内在的,标签与数据默认对齐,除非特殊情况,一般不会断开连接,因此通过索引取值非常方便,不需要循环,可以直接通过字典方式,key 获取value

2 Series 创建的几种方式

2.1 列表创建

import pandas as np

import pandas as pd

# Series组成部分:pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)

lst = [1,3,5,6,10,23]

s = pd.Series(lst) # 可以通过index指定索引,如果不指定索引,则会自动从0开始生成索引,我们叫做隐式索引

s

lst = [1,3,5,6,10,23]

s = pd.Series(lst,index=["A","B","C","D","E","F"]) # 通过index设置显式索引

s

2.2 numpy创建

s = pd.Series(np.random.randint(1,10,size=(3,)),index=['a','b','c'])

s

2.3 字典创建

dic = {"A":1,"B":2,"C":3,"D":2}

s2 = pd.Series(dic)

s2

3 Series的索引和切片

因为Series只有一列,因此一般只对行进行操作,索引分为隐式索引和显示索引,因此不同的方式操作起来也不一样。

3.1 Series隐式索引的操作

lst = [1,3,5,6,10,23]

s = pd.Series(lst)

s[0]取某一行,也可以说取某个元素

s[[0,1]]取多行时,里面则是列表,可存储多个

s[0:2]切片操作,取0-2行,但是只能取到0和1行,顾头不顾尾

s.iloc[0:2]使用iloc来专门对隐式索引进行相关操作,也是只能取到0和1行,顾头不顾尾

s.iloc[[0,1]] 使用iloc来专门对隐式索引进行相关操作,跟s[[0,1]]一样

这里就不一一举例了,我可是一个一个都试过的。

3.2 Series显式索引的操作

lst = [1,3,5,6,10,23]

s1 = pd.Series(lst,index=["A","B","C","D","E","F"])s1["A"]取某行或单个元素

s1[["A","B"]]取多行,可以是连续的,也可以是不连续的

s1["A":"B"]切片,取A行和B行,这里的B行是可以取到的,头和尾都可以取到

s1.loc["A":"B"]使用loc来专门对显式索引进行相关操作,这里的B行也可以取到

s1.loc[["A","B"]]使用loc来专门对显式索引进行相关操作

总结Series的索引和切片只针对行而言,因为它只有一列

loc是对于显式索引的相关操作(对于标签的处理),iloc是针对隐式索引的相关操作(对于整数的处理)。

我们发现其实s[0:2] 与 s.iloc[0:2]没有太大差别(显式索引也是一样),这并不说明iloc就没有用,个人觉得它更有意义的是在DataFrame当中使用,后面会讲到。

4 Series的基本操作

4.1 显示Series部分数据内容s.head(n)该函数代表的意思是显示前多少行,可以指定显示的行数,不写n默认是前5行

s.tail(n)该函数代表的意思是显示后多少行,可以指定显示的行数,不写n默认是前5行

lst = [1,3,5,6,10,23]

s1 = pd.Series(lst,index=["A","B","C","D","E","F"])

s1.head() # 显示前5行

s1.tail() # 显示后5行

4.2 Series去重操作

s.unique() 结果为一维数组

dic = {"A":1,"B":2,"C":3,"D":2}

s2 = pd.Series(dic)

s2.unique() # 原s2并未修改,该结果返回的是一维数组

4.3 Series的相加运算

Series相加,会根据索引进行操作,索引相同则数值相加,索引不同则返回NaN

NaN在pandas解释中为 not a number ,它是float类型,表示缺失数据,可以参与运算。

# s1

lst = [1,3,5,6,10,23]

s1 = pd.Series(lst,index=["A","B","C","D","E","F"])

# s2

dic = {"A":1,"B":2,"C":3,"D":2}

s2 = pd.Series(dic)

s3 = s2+s1

4.4 Series缺失值操作

查看Series中哪些是NaN

二者都是判断是否为空,返回的结果为True或Falses.notnull()不为空返回True,为空返回False

s.isnull() 不为空返回False,为空返回True

s3.isnull()

s3.notnull()

需求1:只显示不为空的行

s3[s3.notnull()]

需求2:只显示为空的行

s3[s3.isnull()]

你可能感兴趣的:(python,series去重)