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系列之新版本导入httplib模块报ImportError解决方案
May 23 Python
python读取二进制mnist实例详解
May 31 Python
Python实现注册登录系统
Aug 08 Python
Tensorflow加载预训练模型和保存模型的实例
Jul 27 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
python百行代码自制电脑端网速悬浮窗的实现
May 12 Python
python图片验证码识别最新模块muggle_ocr的示例代码
Jul 03 Python
python使用列表的最佳方案
Aug 12 Python
python 如何读、写、解析CSV文件
Mar 03 Python
Django中的JWT身份验证的实现
May 07 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 smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
使用python实现简单五子棋游戏
2019/06/18 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
小学生自我评价范文
2014/01/25 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
校园安全教育心得体会
2016/01/15 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书