Pandas中一共有三种数据结构,分别为:Series、DataFrame和MultiIndex(老版本中叫Panel )。其中:

  • Series是一维数据结构;
  • DataFrame是二维的表格型数据结构;
  • MultiIndex是三维的数据结构;

Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。

  • 创建

    • pd.Series([], index=[])
    • pd.Series({})
  • 属性
    • 对象.index
    • 对象.values

一、Series数据结构

Series 是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引。

  • 核心:series相比于ndarray,是一个自带索引index的数组 → 一维数组 + 对应索引
  • 所以当只看series的值的时候,就是一个ndarray
  • series和ndarray较相似,索引切片功能差别不大
  • series和dict相比,series更像一个有顺序的字典(dict本身不存在顺序),其索引原理与字典相似(一个用key,一个用index)
import numpy as np
import pandas as pd# 查看数据、数据类型
s = pd.Series(np.random.rand(5))
print('s = \n', s)
print('\ntype(s) = ', type(s))# .index查看series索引,类型为rangeindex
print('\ns.index = {0}, type(s.index) = {1}'.format(s.index, type(s.index)))
# .values查看series值,类型是ndarray
print('\ns.values = {0}, type(s.values) = {1}'.format(s.values, type(s.values)))

打印结果:

s =
0    0.809852
1    0.096700
2    0.202184
3    0.838067
4    0.344407
dtype: float64type(s) =  <class 'pandas.core.series.Series'>s.index = RangeIndex(start=0, stop=5, step=1), type(s.index) = <class 'pandas.core.indexes.range.RangeIndex'>s.values = [0.80985162 0.09670019 0.20218442 0.83806729 0.34440732], type(s.values) = <class 'numpy.ndarray'>Process finished with exit code 0

二、Series的创建

import pandas as pdpd.Series(data=None, index=None, dtype=None)
  • data:传入的数据,可以是ndarray、list等
  • index:索引,必须是唯一的,且与数据的长度相等。如果没有传入索引参数,则默认会自动创建一个从0-N的整数索引。
  • dtype:数据的类型

1、Series 创建方法一:由字典创建

字典的key就是index,values就是values

注意:key肯定是字符串

import pandas as pddic = {'red':100, 'blue':200, 'green': 500, 'yellow':1000}
s = pd.Series(data=dic)
print('s = \n', s)

打印结果:

s =
red        100
blue       200
green      500
yellow    1000
dtype: int64

假如values类型不止一种,则dtype变为 object:

import pandas as pddic = {'a': 1, 'b': 'hello', 'c': 3, '4': 4, '5': 5}
s = pd.Series(data=dic)
print('s = \n', s)

打印结果:

s =
a        1
b    hello
c        3
4        4
5        5
dtype: object

2、Series 创建方法二:由数组创建(一维数组)

2.1 默认index是从0开始,步长为1的数字

import numpy as np
import pandas as pdarr = np.random.randn(5)
s = pd.Series(data=arr)print('arr = ', arr)
print('\ns = \n', s)

打印结果:

arr =  [ 1.82866366  0.75174314 -1.67554372  1.51687102  0.7632735 ]s =
0    1.828664
1    0.751743
2   -1.675544
3    1.516871
4    0.763273
dtype: float64

2.2 自定义index

import numpy as np
import pandas as pdarr = np.random.randn(5)
print('arr = ', arr)# index参数:设置index,长度保持一致
# dtype参数:设置数值类型
s = pd.Series(data=arr, index=['a', 'b', 'c', 'd', 'e'], dtype=np.object)
print('\ns = \n', s)

打印结果:

arr =  [-0.30063079 -1.0600119  -1.13511772  0.75371044 -0.87985218]s =
a   -0.300631
b    -1.06001
c    -1.13512
d     0.75371
e   -0.879852
dtype: object

3、Series 创建方法三:由标量创建

如果data是标量值,则必须提供索引。该值会重复,来匹配索引的长度

import pandas as pd# Series 创建方法三:由标量创建
s = pd.Series(data=10, index=range(4))
print('\ns = \n', s)

打印结果:

s =
0    10
1    10
2    10
3    10
dtype: int64

三、Series的属性

为了更方便地操作Series对象中的索引和数据,Series中提供了两个属性index和values

1、index

import pandas as pddic = {'red':100, 'blue':200, 'green': 500, 'yellow':1000}
color_count = pd.Series(data=dic)
print('color_count = \n', color_count)
print('\ncolor_count.index = ', color_count.index)

打印结果:

color_count =
red        100
blue       200
green      500
yellow    1000
dtype: int64color_count.index =  Index(['red', 'blue', 'green', 'yellow'], dtype='object')

2、values

import pandas as pddic = {'red':100, 'blue':200, 'green': 500, 'yellow':1000}
color_count = pd.Series(data=dic)
print('color_count = \n', color_count)
print('\ncolor_count.values = ', color_count.values)

打印结果:

color_count =
red        100
blue       200
green      500
yellow    1000
dtype: int64color_count.values =  [ 100  200  500 1000]

也可以使用索引来获取数据:

color_count[2]# 结果
100

3、name属性

import numpy as np
import pandas as pd# Series 名称属性:name
# name为Series的一个参数,创建一个数组的名称
# .name方法:输出数组的名称,输出格式为str,如果没用定义输出名称,输出为Nones1 = pd.Series(np.random.randn(5))
print('s1 = \n{0}, \ns1.name = {1}, type(s1.name) = {2}'.format(s1, s1.name, type(s1.name)))
print('-' * 100)s2 = pd.Series(np.random.randn(5), name='test')
print('s2 = \n{0}, \ns2.name = {1}, type(s2.name) = {2}'.format(s2, s2.name, type(s2.name)))
print('-' * 100)# .rename()重命名一个数组的名称,并且新指向一个数组,原数组不变
s3 = s2.rename('hehehe')
print('s3 = \n{0}, \ns3.name = {1}, type(s3.name) = {2}'.format(s3, s3.name, type(s3.name)))

打印结果:

s1 =
0    0.327221
1    1.111763
2    0.412881
3   -0.823193
4    0.855757
dtype: float64,
s1.name = None, type(s1.name) = <class 'NoneType'>
----------------------------------------------------------------------------------------------------
s2 =
0    0.399637
1   -1.042004
2   -0.725770
3   -2.863925
4   -0.840557
Name: test, dtype: float64,
s2.name = test, type(s2.name) = <class 'str'>
----------------------------------------------------------------------------------------------------
s3 =
0    0.399637
1   -1.042004
2   -0.725770
3   -2.863925
4   -0.840557
Name: hehehe, dtype: float64,
s3.name = hehehe, type(s3.name) = <class 'str'>Process finished with exit code 0

Pandas-数据结构-Series(一):创建Series【①由字典创建;②由一维数组创建;③由标量创建】【Series的属性:index、values、name】相关推荐

  1. Pandas数据结构:Series定义和创建

    文章目录 Series 定义 创建 Pandas中重要的两个数据结构:Series和DataFrame.数据分析必学的两种数据结构,这两种数据结构以Numpy的Ndarray为基础,在Ndarray的 ...

  2. pandas中series一维数组的创建、索引的更改+索引切片和布尔索引+dataframe二维数组的创建、基本属性、索引方法(传统方法和lociloc)、nan操作、排序+案例

    目录 一.为什么要学习pandas? 二.pandas的常用数据类型 1.series--一维的且带标签的数组 (1)创建一维数组 (2)通过列表形式创建的series带标签数组可以改变索引,传入索引 ...

  3. 技术图文:Numpy 一维数组 VS. Pandas Series

    背景 Numpy 提供的最重要的数据结构是 ndarray,它是 Python 中 list 的扩展. Pandas 提供了两种非常重要的数据结构 Series和DataFrame. Numpy 中的 ...

  4. es6一维数组转二维数组_技术图文:Numpy 一维数组 VS. Pandas Series

    背景 Numpy 提供的最重要的数据结构是 ndarray,它是 Python 中 list 的扩展. Pandas 提供了两种非常重要的数据结构 Series和DataFrame. Numpy 中的 ...

  5. NumPy一维数组、二维数组与Pandas的Series、DataFrame行列结构和横纵方向的统一说明

    最近在这个问题上耽误了一些时间,原因是之前个人理解上出了一些偏差,又受到错误文章的误导,把这个问题搞复杂了,现在统一梳理一下.在展开之前,先明确说明的是:NumPy的二维数组与Pandas的DataF ...

  6. pandas 入门(pandas 数据结构介绍)

    pandas 数据结构介绍 一.pandas 基础数据结构 1.pandas 中主要有两种数据结构:Series 和 DataFrame. 2.Series:一种一维的数组型对象,它包含了一个值序列( ...

  7. 总结的pandas数据结构 和需要掌握的知识点

    Pandas 数据结构 学习目标 掌握Series的常用属性及方法 掌握DataFrame的常用属性及方法 掌握更改Series和DataFrame的方法 掌握如何导入导出数据 创建Series和Da ...

  8. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  9. Matlab之创建等间隔一维数组

    测试算法时,我们会用到的一维数组. 例如:创建一个1~5以0.5为间隔的一维数组,或者创建一个1~5且间隔9个数的一维数组 通常做法: A=1:0.5:5; 使用函数: B=linspace(1,5, ...

  10. matlab寻访一维数组,MATLAB 一维数组的创建和寻访

    3.2 一维数组的创建和寻访 3.2.2 一维数组的子数组寻访和赋值 [ * 例 3.2.2 -1 ]子数组的寻访( Address ). rand('state',0) %把均匀分布伪随机发生器置为 ...

最新文章

  1. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)
  2. Oracle 之 配置HugePages内存
  3. Consul + Nginx实现自动扩容平台
  4. python 可变参数 关键字参数_Python关键字及可变参数*args,**kw原理解析
  5. 八十三、经典排序算法之堆排序
  6. Spring IoC 源码系列(四)bean创建流程与循环依赖问题分析
  7. matlab去除图片水印_(水印去除技巧)3个在线图片水印去除网站,值得收藏
  8. mysql5.5.49.tar.gz_CentOS6.5 解压安装 二进制分发版 mysql-5.5.49-linux2.6-x86_64.tar.gz
  9. 光伏发电极其并网控制matlab/simulink仿真文件,最大功率点跟踪采用扰动观察法
  10. bootbox api
  11. SHA-512摘要算法(带示例)
  12. 您的计算机存在远程桌面连接,远程桌面无法连接,详细教您电脑远程桌面无法连接怎么办...
  13. 如何建立线上问题快速响应机制
  14. HTML中字体大小的设置
  15. 基于点锐度的清晰度算法 EAV
  16. 均质机工作原理动画_高压均质机结构图.doc
  17. 怎么判断私网地址_判断本机IP地址是公网地址还是私网地址
  18. React Native-6.React Native Text组件,多组件封装实战之凤凰资讯页面
  19. Frequent Pattern Tree 频繁模式数
  20. 为什么商品宝贝属性越改权重越低,怎样改商品信息对权重没影响

热门文章

  1. 忙里偷闲又把自己的JWT实现改进了一下
  2. 如何让文件下载可以弹出对话框并且设置下载位置
  3. svga文件预览_SVGA文件格式——SVGA动画制作和文件转换
  4. 三分钟读懂外汇保证金交易,告诉你我为什么要做外汇交易!(开篇)
  5. 中国金融行业的现状及发展趋势
  6. Git撤销对远程仓库的push 或 Git撤销对远程仓库的commit提交
  7. 如何让免费OA系统深入企业管理当中
  8. Linux企业级服务之实现DNS子域服务器
  9. 江苏大学 计算机网络 期末/考研复试 复习
  10. 第六章:TestOps的先决条件与TiP的类型