Pandas 系列之Series类型数据

Pandas 系列之Series类型数据 本文开始正式写Pandas的系列文章,就从:如何在Pandas中创建数据开始。Pandas中创建的数据包含两种类型:

  • Series类型
  • DataFrame类型
Pandas 系列之Series类型数据
文章图片


内容导图 Pandas 系列之Series类型数据
文章图片

Series类型 Series 是一维数组结构,它仅由index(索引)和value(值)构成的。
Series的索引具有唯一性,索引既可以是数字,也可以是字符,系统会自动将它们转成一个object类型(pandas中的字符类型)。
Pandas 系列之Series类型数据
文章图片

DataFrame类型 DataFrame 是将数个 Series 按列合并而成的二维数据结构,每一列单独取出来是一个 Series ;除了拥有index和value之外,还有column。下图中:
  • 索引Index:0,1,2,3…….
  • 字段属性:fruit,number
  • 值value:苹果、葡萄等;200、300等
Pandas 系列之Series类型数据
文章图片

导入库 先导入两个库:
import pandas as pd import numpy as np

Series类型创建与操作
  • 通过可迭代类型列表、元组生成
  • 通过python字典生成
  • 通过numpy数组生成
列表生成
通过列表的方式生成Series数据
s1 = pd.Series([7,8,9,10]) s1# 结果 07 18 29 310 dtype: int64

s2 = pd.Series(list(range(1,8))) s2# 结果 01 12 23 34 45 56 67 dtype: int64

元组生成
下面的方法是通过元组生成Series数据
s3 = pd.Series((7,8,9,10,11)) s3# 结果 07 18 29 310 411 dtype: int64

Pandas 系列之Series类型数据
文章图片

s4 = pd.Series(tuple(range(1,8)))#从1到8,不包含8 s4# 结果 01 12 23 34 45 56 67 dtype: int64

使用字典创建
字典的键为索引,值为Series结构对应的值
dic_data = https://www.it610.com/article/{"0":"苹果", "1":"香蕉", "2":"哈密瓜","3":"橙子"}s5 = pd.Series(dic_data) s5# 结果 0苹果 1香蕉 2哈密瓜 3橙子 dtype: object

Pandas 系列之Series类型数据
文章图片

使用numpy数组
s6 = pd.Series(np.arange(3,9)) s6# 结果 03 14 25 36 47 58 dtype: int64

指定索引(列表)
默认的索引都是从0开始的数值,可以在创建的时候指定每个索引
# 默认s1 = pd.Series([7,8,9,10]) s1# 结果 07 18 29 310 dtype: int64

s7 = pd.Series([7,8,9,10], index=["A","B","C","D"])# 指定索引值 s7# 结果 A7 B8 C9 D10 dtype: int64

Pandas 系列之Series类型数据
文章图片

指定索引(字典形式)
字典的键作为索引值
dic_data = https://www.it610.com/article/{"水果1":"苹果", "水果2":"香蕉", "水果3":"哈密瓜", "水果4":"橙子" }s8 = pd.Series(dic_data) s8# 结果 水果1苹果 水果2香蕉 水果3哈密瓜 水果4橙子 dtype: object

Pandas 系列之Series类型数据
文章图片

查看索引值
s8# 结果 水果1苹果 水果2香蕉 水果3哈密瓜 水果4橙子 dtype: object

s8.index# 查看索引值# 结果 Index(['水果1', '水果2', '水果3', '水果4'], dtype='object')

查看值
s8# 结果 水果1苹果 水果2香蕉 水果3哈密瓜 水果4橙子 dtype: object

s8.values# 结果 array(['苹果', '香蕉', '哈密瓜', '橙子'], dtype=object)

更改索引
# 1、新索引 index_new = ['one', 'two', 'three', 'four'] # 2、赋值 s8.index = index_news8 # 结果 one苹果 two香蕉 three哈密瓜 four橙子 dtype: object

Pandas 系列之Series类型数据
文章图片

查看是否存在空值
s7# 结果 A7 B8 C9 D10 dtype: int64

s7.isnull()# 没有空值# 结果 AFalse BFalse CFalse DFalse dtype: bool

s7.notnull()# 结果 ATrue BTrue CTrue DTrue dtype: bool

查看某个索引的值
s7A7 B8 C9 D10 dtype: int64

两种方式查看:
  • 通过自定义的索引查看
  • 通过对应的数值索引查看
s7["A"]#自定义的索引值7

s7[0]# 默认的数值索引7

s7["D"]10

s7[3]10

将Series转成字典
s_dic = s7.to_dict()# 转成字典形式 s_dic# 结果 {'A': 7, 'B': 8, 'C': 9, 'D': 10}

type(s_dic)# 结果显示为字典类型# 结果 dict

给Series索引命名
s8# 结果 one苹果 two香蕉 three哈密瓜 four橙子 dtype: object

s8.index# 原索引Index(['one', 'two', 'three', 'four'], dtype='object')

s8.index.name = "水果"# 索引命名 s8

结果显示为:
水果 one苹果 two香蕉 three哈密瓜 four橙子 dtype: object

s8.index# 更改之后的索引

Index(['one', 'two', 'three', 'four'], dtype='object', name='水果')

修改Series数值
s8# 结果为 水果 one苹果 two香蕉 three哈密瓜 four橙子 dtype: object

s8["three"] = "西瓜"# 等价于s8[2] = "西瓜"s8

更改之后的值为:
水果 one苹果 two香蕉 three西瓜 four橙子 dtype: object

Series结构转成DataFrame结构
s8水果 one苹果 two香蕉 three西瓜 four橙子 dtype: object

Pandas 系列之Series类型数据
文章图片

在将s8转成DataFrame的过程中涉及到3个函数:
  • to_frame:转成DataFrame
  • reset_index:DataFrame类型的索引重置
  • rename:DataFrame的字段属性重置
关于DataFrame的相关内容下节详细讲解,敬请期待!
扩展阅读
【Pandas 系列之Series类型数据】在之前写过的旅游攻略文章中使用pandas的很多知识点,可供学习:
  • 海滨城市:厦门真的不止鼓浪屿
  • 娱乐之都:长沙31块的臭豆腐它香吗?
  • 美食之都:成都的火锅应该很辣吧!
  • 13朝古都:西安-当秦始皇遇上biangbiang面
  • 北方明珠:北方明珠大连等你

    推荐阅读