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通过websocket与js客户端通信示例分析
Jun 25 Python
简单谈谈python中的多进程
Nov 06 Python
python 获取字符串MD5值方法
May 29 Python
python实现zabbix发送短信脚本
Sep 17 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
浅谈Python爬虫原理与数据抓取
Jul 21 Python
Python3爬虫带上cookie的实例代码
Jul 28 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
tensorflow2.0教程之Keras快速入门
Feb 20 Python
Python基础之元类详解
Apr 29 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
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
js一组验证函数
2008/12/20 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
学前教育专业毕业生自荐信
2013/10/03 职场文书
优秀班干部事迹材料
2014/01/26 职场文书
商场促销活动方案
2014/02/08 职场文书
数学系毕业生求职信
2014/05/29 职场文书
课程设计的心得体会
2014/09/03 职场文书
大学生暑假实习总结
2015/07/13 职场文书
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js