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去掉字符串中空格的方法
Mar 11 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
Python用csv写入文件_消除空余行的方法
Jul 06 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
使用python将多个excel文件合并到同一个文件的方法
Jul 09 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
python多线程同步之文件读写控制
Feb 25 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
Jun 11 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 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为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
php验证码实现代码(3种)
2015/09/07 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
js中判断控件是否存在
2010/08/25 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
python设置检查点简单实现代码
2014/07/01 Python
python optparse模块使用实例
2015/04/09 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
python画图的函数用法以及技巧
2019/06/28 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
Python目录和文件处理总结详解
2019/09/02 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
英语硕士生求职简历的自我评价
2013/10/15 职场文书
施工班组长岗位职责
2014/01/05 职场文书
2014年学习部工作总结
2014/11/12 职场文书
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android
Redis基本数据类型List常用操作命令
2022/06/01 Redis