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数据类型详解(三)元祖:tuple
May 08 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
深入浅析Python2.x和3.x版本的主要区别
Nov 30 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
详解python的super()的作用和原理
Oct 29 Python
vue.js刷新当前页面的实例讲解
Dec 29 Python
python中yield的用法详解
Jan 13 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 Python
Python机器学习应用之基于线性判别模型的分类篇详解
Jan 18 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 curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
PHP防止跨域提交表单
2013/11/01 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
python画微信表情符的实例代码
2019/10/09 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
Python celery原理及运行流程解析
2020/06/13 Python
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
竞聘书模板
2014/03/31 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
保护校园环境倡议书
2015/04/28 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
Oracle中日期的使用方法实例
2022/07/07 Oracle