前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据分析pandas之series初识

Python数据分析pandas之series初识

作者头像
Java架构师必看
发布2021-12-02 08:18:48
5170
发布2021-12-02 08:18:48
举报
文章被收录于专栏:Java架构师必看

Python数据分析pandas之series初识

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说Python数据分析pandas之series初识,希望能够帮助大家进步!!!

Python数据分析pandas之series初识

声明与简介

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

创建Series

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

通过ndarray创建Series

代码语言:javascript
复制
#通过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

代码语言:javascript
复制
此代码由Java架构师必看网-架构君整理
#通过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

代码语言:javascript
复制
# 这里创建一个显式索引定义的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

代码语言:javascript
复制
此代码由Java架构师必看网-架构君整理
# 通过字典来创建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

代码语言:javascript
复制
# 通过指定索引方式创建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

代码语言:javascript
复制
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

代码语言:javascript
复制
# 通过字典数组来创建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

代码语言:javascript
复制
#通过索引号或者位置索引(从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

代码语言:javascript
复制
#通过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

代码语言:javascript
复制
#通过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切片

代码语言:javascript
复制
#类似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切片

代码语言:javascript
复制
#类似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
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 声明与简介
  • 创建Series
    • 通过ndarray创建Series
      • 创建无索引内容Series
        • 创建有索引内容Series
          • 通过字典不指定索引创建Series
            • 索引不同元素相同方式初始化Series
              • 通过字典指定索引创建Series
                • 通过字典数组创建Series
                • 访问Series
                  • 通过索引位置索引访问Series
                    • 通过loc显示访问Series
                      • 通过iloc显示访问Series
                        • 通过loc对Series切片
                          • 通过iloc对Series切片
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档