Python数据分析pandas之series初识

Posted ShenLiang2025

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据分析pandas之series初识相关的知识,希望对你有一定的参考价值。

Python数据分析pandas之series初识

声明与简介

pandas是一个基于python的、快速的、高效、灵活、易用的开源的数据处理、分析包(工具)。。pandas构建在numpy之上,它通过DataFrame(数据框)来操作数据。数据框是一个高效的可以指定行和列标签的多维数组,通过这种数据类型可以更方便的操作、分析数据。本文主要介绍Series的初始化和访问。

创建Series

Series是个一维的索引化数组,和定义一维的ndrray类似,我们可以通过”[]”直接定义。

通过ndarray创建Series

#通过numpy的ndarry初始化Series
import pandas as pd
import numpy as np
serie1= pd.Series(np.array([1, 2, 3, 4]))
print(serie1)

#结果
0    1
1    2
2    3
3    4
dtype: int32

#注:这里没有指定索引,默认的索引是数值型的,从0开始。

创建无索引内容Series

#通过np.Series直接创建Series。
import pandas as pd serie1= pd.Series([3,5,8]) print(serie1) print(type(serie1.values),serie1.values)
#结果,从结果可以看到Series.values返回的是numpy的ndarray类型。
0    3
1    5
2    8
dtype: int64
<class 'numpy.ndarray'> [3 5 8]

那么这里我们不难发现和一维的ndarray相比,Series在索引上是显式的,即数据里带有索引信息。当然索引的内容可以不都是数字型的,而ndarray的索引却都是数字型的。

创建有索引内容Series

# 这里创建一个显式索引定义的Series,演示的内容主要是可以通过指定的索引内容来访问Series里的数据。另外这里也举例说明了Series里自动实现元素类型的统一,比如元素类型有int和float时,int都统一转换为float。
import pandas as pd 
serie1= pd.Series([3,5,8.23],index=['id','no','seq']) 
print(serie1) print(type(serie1.values),serie1.values)
print("索引号"+'seq'+'\\t:'+str(serie1['seq']))

通过字典不指定索引创建Series

# 通过字典来创建Series,这里的字典即是key:value键值对。
import pandas as pd 
dic1 ={"id": 10001,     "name":"张三",     "course":"英文",     "score":"90" } 
serie1= pd.Series(dic1) 
print(serie1) print("索引号"+'name'+'\\t:'+str(serie1['name']))

索引不同元素相同方式初始化Series

# 通过指定索引方式创建Series,这里所有的元素都初始化为同样的值。
import pandas as pd
serie1= pd.Series(10,index=['id','score','level'])
print(serie1)print("索引号"+'name'+'\\t:'+str(serie1['name']))
#结果
id       10
score    10
level    10
dtype: int64
#这种方式指定了索引,所有的索引对应的元素都是相同的值。
#如果想指定数据类型,可以加上参数dtype,比如dtype=np.int32

通过字典指定索引创建Series

import pandas as pd
dic1 = {
	"course": "英文",
	"id": "10001",
	"name": "张三",
	"score": "90"
}

serie1= pd.Series(dic1,index=['course','id','score'])
print(serie1)
print(serie1['score'])
print(dic1)
print(serie1.size)

#结果
course       英文
id        10001
score        90
dtype: object
90
3
{'course': '英文', 'id': '10001', 'name': '张三', 'score': '90'}
#这里不难发现,虽然字典里有4个元素,但因为生成Series时指定的索引仅有3个且和字典的key名一致,所以最终生成Series仅有3个元素。我们可以通过它的size可以看到。

通过字典数组创建Series

# 通过字典数组来创建Series,这里的字典即是key:value键值对。数组里每个元素都是字典类型。
import pandas as pd 
dic1 =[{     "course": "英文",     "id": "10001",     "name":"张三",     "score":"90" },
{"course":"语文",     "id": "10002",     "name":"李四",     "score":"80" }] 
serie1= pd.Series(dic1) 
print(serie1[1]) 
print(type(serie1[1]))
#结果
{'course': '语文', 'id': '10002', 'name': '李四', 'score': '80'} <class 'dict'>
注:一般我们不通过字典数组初始化Series,因为Series和普通数组的区别在于它有显式的,且有意义的,而字典数组方式直接初始化,默认的索引和普通ndarray方式一样,即0、1这种数字型索引。除非每条记录有特定意义,通过索引标识。

访问Series

通过索引位置索引访问Series

#通过索引号或者位置索引(从0开始),以”[]”的方式访问Series。
import pandas as pd
dic1 = {
	"course": "英文",
	"id": "10001",
	"name": "张三",
	"score": "90"}

serie1= pd.Series(dic1)
print(serie1['id'],serie1['course'])
print(serie1[1],serie1[3])


#结果
10001 英文
10001 英文

通过loc显示访问Series

#通过loc方式访问,方法类似以索引方式访问。

import pandas as pd
dic1 = {
	"course": "英文",
	"id": "10001",
	"name": "张三",
	"score": "90"}

serie1= pd.Series(dic1)
print(serie1.loc['id'],serie1.loc['score'])

#结果
10001 90

通过iloc显示访问Series

#通过iloc方式访问,方法类似以位置索引方式访问。

import pandas as pd
dic1 = {
	"course": "英文",
	"id": "10001",
	"name": "张三",
	"score": "90"}

serie1= pd.Series(dic1)
print(serie1.iloc[1],serie1.iloc[3])

#结果
10001 90

通过loc对Series切片

#类似ndarry,我们可以通过“[start:end]”(start即下标、end为上标)方式对数组进行切片访问,这里切片后仍然是Series。
import pandas as pd
dic1 = {
	"course": "英文",
	"id": "10001",
	"name": "张三",
	"score": "90"
}
serie1= pd.Series(dic1)
print(serie1.loc["course":"name"])

#结果
course       英文
id        10001
name         张三
dtype: object

通过iloc对Series切片

#类似ndarry,我们可以通过“[start:end]”(start即下标、end为上标)方式对数组进行切片访问,这里切片后仍然是Series。
import pandas as pd
dic1 = {
	"course": "英文",
	"id": "10001",
	"name": "张三",
	"score": "90"
}
serie1= pd.Series(dic1)
print(serie1.iloc[1:3])

#结果
id      10001
name       张三
dtype: object

以上是关于Python数据分析pandas之series初识的主要内容,如果未能解决你的问题,请参考以下文章

利用python数据分析panda学习笔记之Series

Pandas初体验之数据结构——Series和DataFrame

Pandas数据结构之Series

Python数据分析pandas之dataframe初识

pandas之Series

Pandas之Series和Dataframe