pandas中的series数据类型详解


Posted in Python onJuly 06, 2019

本文介绍了pandas中的series数据类型详解,分享给大家,具体如下:

import pandas as pd
import numpy as np
import names

'''
写在前面的话:
  1、series与array类型的不同之处为series有索引,而另一个没有;series中的数据必须是一维的,而array类型不一定
  2、可以把series看成一个定长的有序字典,可以通过shape,index,values等得到series的属性
'''
# 1、series的创建
'''
(1)由列表或numpy数组创建
    默认索引为0到N-1的整数型索引,如s1;
    可以通过设置index参数指定索引,如s2;
    通过这种方式创建的series,不是array的副本,即对series操作的同时也改变了原先的array数组,如s3
(2)由字典创建
    字典的键名为索引,键值为值,如s4;
'''
n1 = np.array([1, 4, 5, 67, 7, 43, ])
s1 = pd.Series(n1)
# print(s1)
'''
  1
  4
  5
  67
  7
  43
dtype: int32
'''
s2 = pd.Series(n1, index=['a', 'b', 'c', 'd', 'e', 'f'])
# print(s2)
'''
a   1
b   4
c   5
d  67
e   7
f  43
dtype: int32
'''
# print(n1)
'''
[ 1 4 5 67 7 43]
'''
s1[2] = 100
s3 = s1
# print(s3)
'''
   1
   4
  100
  67
   7
  43
dtype: int32
'''
# print(n1)
'''
[ 1  4 100 67  7 43]
'''
dict1 = {}
for i in range(10, 15):
  # names.get_last_name(),随机生成英文名字
  dict1[names.get_last_name()] = i
s4 = pd.Series(dict1)
# print(s4)
'''
Poole   10
Allen   11
Davis   12
Roland  13
Brehm   14
dtype: int64
'''
# 2、series的索引
'''
(1)通过index取值,可以通过下标获取,也可以通过指定索引获取,如s6,s7
(2)通过.loc[](显示索引)获取,这种方式只能获取显示出来的索引,无法通过下标获取,如s7(推荐)
(3)隐式索引,使用整数作为索引值,使用.icol[],如s9(推荐)
'''
s5 = pd.Series(np.array([1, 5, 9, 7, 6, 4, 52, 8]), index=[list('abcdefgh')])
# print(s5)
'''
a   1
b   5
c   9
d   7
e   6
f   4
g  52
h   8
dtype: int32
'''
s6 = s5[2]
# print(s6)
'''
'''
s7 = s5['c']
# print(s7)
'''
c  9
dtype: int32
'''
s8 = s5.loc['c']
# print(s8)
'''
c  9
dtype: int32
'''
s9 = s5.iloc[2]
# print(s9)
'''
'''
# 3、series的切片
'''
  1、series的切片和列表的用法类似,不同之处在于建议使用.loc[:]和.iloc[:],如s10和s11。当然直接使用[:]也可以。
  2、当遇到特别长的series,我们支取出前5条或后5条数据时可以直接使用.head()或.tail()
'''
s5 = pd.Series(np.array([1, 5, 9, 7, 6, 4, 52, 8]), index=[list('abcdefgh')])
# print(s5)
'''
a   1
b   5
c   9
d   7
e   6
f   4
g  52
h   8
dtype: int32
'''
s10 = s5.loc['b':'g']
# print(s10)
'''
b   5
c   9
d   7
e   6
f   4
g  52
dtype: int32
'''
s11 = s5.iloc[1:7]
# print(s11)
'''
b   5
c   9
d   7
e   6
f   4
g  52
dtype: int32
'''
# 4、关于NaN
'''
  (1)NaN是代表空值, 但不等于None。两者的数据类型不一样,None的类型为<class 'NoneType'>,而NaN的类型为<class 'float'>;
  (2)可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据
'''
# print(type(None),type(np.nan))
'''
<class 'NoneType'> <class 'float'>
'''
s12 = pd.Series([1,2,None,np.nan],index=list('烽火雷电'))
# print(s12)
'''
烽  1.0
火  2.0
雷  NaN
电  NaN
dtype: float64
'''
# print(pd.isnull(s12))
'''
烽  False
火  False
雷   True
电   True
dtype: bool
'''
# print(pd.notnull(s12))
'''
烽   True
火   True
雷  False
电  False
dtype: bool
'''
# print(s12.notnull())
'''
烽   True
火   True
雷  False
电  False
dtype: bool
'''
# print(s12.isnull())
'''
烽  False
火  False
雷   True
电   True
dtype: bool
'''
# 取出series中不为空的值
# print(s12[s12.notnull()])
'''
烽  1.0
火  2.0
dtype: float64
'''
# series的name属性
'''

'''
s12.name = '风水'
# print(s12)
'''
烽  1.0
火  2.0
雷  NaN
电  NaN
Name: 风水, dtype: float64
'''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python处理圆角图片、圆形图片的例子
Apr 25 Python
python logging类库使用例子
Nov 22 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 Python
python利用正则表达式提取字符串
Dec 08 Python
Python如何读取MySQL数据库表数据
Mar 11 Python
Linux RedHat下安装Python2.7开发环境
May 20 Python
python 定义给定初值或长度的list方法
Jun 23 Python
python读取LMDB中图像的方法
Jul 02 Python
python实现顺时针打印矩阵
Mar 02 Python
python批量识别图片指定区域文字内容
Apr 30 Python
python实现多线程端口扫描
Aug 31 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 #Python
从列表或字典创建Pandas的DataFrame对象的方法
Jul 06 #Python
pandas的qcut()方法详解
Jul 06 #Python
pandas 层次化索引的实现方法
Jul 06 #Python
pandas删除行删除列增加行增加列的实现
Jul 06 #Python
Python使用Pandas库实现MySQL数据库的读写
Jul 06 #Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 #Python
You might like
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
php不用正则验证真假身份证
2013/11/06 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
python服务器与android客户端socket通信实例
2014/11/12 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
浅析Python编写函数装饰器
2016/03/18 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
django session完成状态保持的方法
2018/11/27 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
SQL Server面试题
2013/04/04 面试题
网络工程专业毕业生推荐信
2013/10/28 职场文书
优秀公益广告词大全
2014/03/19 职场文书
毕业自我鉴定书
2014/03/24 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
如何在python中实现ECDSA你知道吗
2021/11/23 Python
Java线程的6种状态与生命周期
2022/05/11 Java/Android