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 相关文章推荐
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
Python保存MongoDB上的文件到本地的方法
Mar 16 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
使用python3+xlrd解析Excel的实例
May 04 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
对Python使用mfcc的两种方式详解
Jan 09 Python
Python常见数据类型转换操作示例
May 08 Python
python yield关键词案例测试
Oct 15 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 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 set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python获取代码运行时间的实例代码
2018/06/11 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
入党自我鉴定范文
2013/10/04 职场文书
园长自我鉴定
2013/10/06 职场文书
汽车驾驶求职信
2013/10/25 职场文书
中式婚礼主持词
2014/03/13 职场文书
优秀广告词大全
2014/03/19 职场文书
楚门的世界观后感
2015/06/03 职场文书
让子弹飞观后感
2015/06/11 职场文书
2019新员工心得体会
2019/06/25 职场文书