Pandas-数据结构-Series(一):创建Series【①由字典创建;②由一维数组创建;③由标量创建】【Series的属性:index、values、name】
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】相关推荐
- Pandas数据结构:Series定义和创建
文章目录 Series 定义 创建 Pandas中重要的两个数据结构:Series和DataFrame.数据分析必学的两种数据结构,这两种数据结构以Numpy的Ndarray为基础,在Ndarray的 ...
- pandas中series一维数组的创建、索引的更改+索引切片和布尔索引+dataframe二维数组的创建、基本属性、索引方法(传统方法和lociloc)、nan操作、排序+案例
目录 一.为什么要学习pandas? 二.pandas的常用数据类型 1.series--一维的且带标签的数组 (1)创建一维数组 (2)通过列表形式创建的series带标签数组可以改变索引,传入索引 ...
- 技术图文:Numpy 一维数组 VS. Pandas Series
背景 Numpy 提供的最重要的数据结构是 ndarray,它是 Python 中 list 的扩展. Pandas 提供了两种非常重要的数据结构 Series和DataFrame. Numpy 中的 ...
- es6一维数组转二维数组_技术图文:Numpy 一维数组 VS. Pandas Series
背景 Numpy 提供的最重要的数据结构是 ndarray,它是 Python 中 list 的扩展. Pandas 提供了两种非常重要的数据结构 Series和DataFrame. Numpy 中的 ...
- NumPy一维数组、二维数组与Pandas的Series、DataFrame行列结构和横纵方向的统一说明
最近在这个问题上耽误了一些时间,原因是之前个人理解上出了一些偏差,又受到错误文章的误导,把这个问题搞复杂了,现在统一梳理一下.在展开之前,先明确说明的是:NumPy的二维数组与Pandas的DataF ...
- pandas 入门(pandas 数据结构介绍)
pandas 数据结构介绍 一.pandas 基础数据结构 1.pandas 中主要有两种数据结构:Series 和 DataFrame. 2.Series:一种一维的数组型对象,它包含了一个值序列( ...
- 总结的pandas数据结构 和需要掌握的知识点
Pandas 数据结构 学习目标 掌握Series的常用属性及方法 掌握DataFrame的常用属性及方法 掌握更改Series和DataFrame的方法 掌握如何导入导出数据 创建Series和Da ...
- 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法
目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...
- Matlab之创建等间隔一维数组
测试算法时,我们会用到的一维数组. 例如:创建一个1~5以0.5为间隔的一维数组,或者创建一个1~5且间隔9个数的一维数组 通常做法: A=1:0.5:5; 使用函数: B=linspace(1,5, ...
- matlab寻访一维数组,MATLAB 一维数组的创建和寻访
3.2 一维数组的创建和寻访 3.2.2 一维数组的子数组寻访和赋值 [ * 例 3.2.2 -1 ]子数组的寻访( Address ). rand('state',0) %把均匀分布伪随机发生器置为 ...
最新文章
- AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)
- Oracle 之 配置HugePages内存
- Consul + Nginx实现自动扩容平台
- python 可变参数 关键字参数_Python关键字及可变参数*args,**kw原理解析
- 八十三、经典排序算法之堆排序
- Spring IoC 源码系列(四)bean创建流程与循环依赖问题分析
- matlab去除图片水印_(水印去除技巧)3个在线图片水印去除网站,值得收藏
- mysql5.5.49.tar.gz_CentOS6.5 解压安装 二进制分发版 mysql-5.5.49-linux2.6-x86_64.tar.gz
- 光伏发电极其并网控制matlab/simulink仿真文件,最大功率点跟踪采用扰动观察法
- bootbox api
- SHA-512摘要算法(带示例)
- 您的计算机存在远程桌面连接,远程桌面无法连接,详细教您电脑远程桌面无法连接怎么办...
- 如何建立线上问题快速响应机制
- HTML中字体大小的设置
- 基于点锐度的清晰度算法 EAV
- 均质机工作原理动画_高压均质机结构图.doc
- 怎么判断私网地址_判断本机IP地址是公网地址还是私网地址
- React Native-6.React Native Text组件,多组件封装实战之凤凰资讯页面
- Frequent Pattern Tree 频繁模式数
- 为什么商品宝贝属性越改权重越低,怎样改商品信息对权重没影响