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中matplotlib中文乱码解决办法
May 12 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
python多线程抽象编程模型详解
Mar 20 Python
python远程邮件控制电脑升级版
May 23 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
对Python3中列表乘以某一个数的示例详解
Jul 20 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
python 穷举指定长度的密码例子
Apr 02 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 Python
Python-openCV开运算实例
Jul 05 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
德生S2000电路分析
2021/03/02 无线电
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
PHP代码优化技巧小结
2015/09/29 PHP
PHP pear安装配置教程
2016/05/14 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
JavaScript面象对象设计
2008/04/28 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
2015/07/28 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
Python实现的数据结构与算法之队列详解
2015/04/22 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
中学校庆方案
2014/03/17 职场文书
中学教师师德承诺书
2014/05/23 职场文书
2015年班级工作总结范文
2015/04/03 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
PHP RabbitMQ消息列队
2022/05/11 PHP