pythonpandas数据类型(Python3.5 Pandas模块之Series用法实例分析)
pythonpandas数据类型
Python3.5 Pandas模块之Series用法实例分析本文实例讲述了python3.5 pandas模块之series用法。分享给大家供大家参考,具体如下:
1、pandas模块引入与基本数据结构
2、series的创建
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu #模块引入 import numpy as np import pandas as pd from pandas import series,dataframe #1.series通过numpy一维数组创建 print ( "=========series通过numpy一维数组创建==========" ) arr = np.array([ 1 , 2 , 3 , 4 , 5 ]) s1 = pd.series(arr) print (s1) print (s1.index) print (s1.values) #2.series直接通过一维数组创建 print ( "=========series直接通过一维数组创建==========" ) s2 = pd.series([ 10.5 , 20 , 38 , 40 ]) print (s2) #修改索引值 s2.index = [ 'a' , 'b' , 'c' , 'd' ] print (s2) #series通过一维数组创建,可以在创建的同时自定义索引值, # 也可以之后通过赋值的形式去修改 print ( "=========series创建的同时自定义索引值和数据类型==========" ) s3 = pd.series(data = [ 89 , 78 , 90 , 87 ],dtype = np.float64, index = [ '语文' , '数学' , '英语' , '科学' ]) print (s3) #3.series通过字典创建,字典的键对应索引,值对应数据 print ( "=========series通过字典创建==========" ) dict = { 'a' : 1 , 'b' : 2 , "c" : 3 , "d" : 4 } s4 = pd.series( dict ) print (s4) |
运行结果:
=========series通过numpy一维数组创建==========
0 1
1 2
2 3
3 4
4 5
dtype: int32
rangeindex(start=0, stop=5, step=1)
[1 2 3 4 5]
=========series直接通过一维数组创建==========
0 10.5
1 20.0
2 38.0
3 40.0
dtype: float64
a 10.5
b 20.0
c 38.0
d 40.0
dtype: float64
=========series创建的同时自定义索引值和数据类型==========
语文 89.0
数学 78.0
英语 90.0
科学 87.0
dtype: float64
=========series通过字典创建==========
a 1
b 2
c 3
d 4
dtype: int64
3、series值的获取
|
#模块引入 import numpy as np import pandas as pd from pandas import series,dataframe #4.series值的获取 print ( "=========series值的获取==========" ) s2 = pd.series([ 10.5 , 20 , 38 , 40 ]) #修改索引值 s2.index = [ 'a' , 'b' , 'c' , 'd' ] print (s2) print (s2[ 0 ]) #方括号+下标值的形式获取series值 print (s2[ "a" ]) #方括号+索引的形式获取series值 |
运行结果:
=========series值的获取==========
a 10.5
b 20.0
c 38.0
d 40.0
dtype: float64
10.5
10.5
4、series运算
|
#模块引入 import numpy as np import pandas as pd from pandas import series,dataframe #5.series值的运算 #series中元素级别的运算结果,包含索引值并且键值关系保持不变 print ( "=========series值的运算==========" ) s6 = pd.series({ 'a' : 1 , 'b' : 2 , "c" : 3 , "d" : 4 }) print (s6) print ( "=========打印series大于2的值==========" ) print (s6[s6> 2 ]) print ( "=========打印series的值除以2==========" ) print (s6 / 2 ) #numpy中的通用函数在series中也支持 s7 = pd.series([ 1 , 2 , - 3 , - 4 ]) print (np.exp(s7)) |
运行结果:
=========series值的运算==========
a 1
b 2
c 3
d 4
dtype: int64
=========打印series大于2的值==========
c 3
d 4
dtype: int64
=========打印series的值除以2==========
a 0.5
b 1.0
c 1.5
d 2.0
dtype: float64
0 2.718282
1 7.389056
2 0.049787
3 0.018316
dtype: float64
5、series缺失值检验
|
#模块引入 import numpy as np import pandas as pd from pandas import series,dataframe #6.series缺失值检验 scores = series({ "a" : 88 , "b" : 79 , "c" : 98 , "d" : 100 }) print (scores) new = [ "a" , "b" , "e" , "c" , "d" ] scores = series(scores,index = new) print (scores) print ( "======过滤出为缺失值的项=======" ) print (scores.isnull()) #nan值返回true #print(pd.isnull(scores)) #与上面一句等价 print ( "======过滤出为非缺失值的项=======" ) print (pd.notnull(scores)) #非nan值返回true |
运行结果:
a 88
b 79
c 98
d 100
dtype: int64
a 88.0
b 79.0
e nan
c 98.0
d 100.0
dtype: float64
======过滤出为缺失值的项=======
a false
b false
e true
c false
d false
dtype: bool
======过滤出为非缺失值的项=======
a true
b true
e false
c true
d true
dtype: bool
6、series自动对齐
|
#模块引入 import numpy as np import pandas as pd from pandas import series,dataframe #7.series自动对齐 s8 = series([ 12 , 28 , 46 ],index = [ "p1" , "p2" , "p3" ]) s9 = series([ 2 , 4 , 6 , 8 ],index = [ "p2" , "p3" , "p4" , "p5" ]) print ( "=======s8=======" ) print (s8) print ( "=======s9=======" ) print (s9) print ( "=======s8+s9=======" ) print (s8 + s9) |
运行结果:
=======s8=======
p1 12
p2 28
p3 46
dtype: int64
=======s9=======
p2 2
p3 4
p4 6
p5 8
dtype: int64
=======s8+s9=======
p1 nan
p2 30.0
p3 50.0
p4 nan
p5 nan
dtype: float64
7、series及其索引的name属性
|
#模块引入 import numpy as np import pandas as pd from pandas import series,dataframe #8.series及其name属性 s10 = series({ "jack" : 18 , "amy" : 20 , "lili" : 23 , "susan" : 15 }) print (s10) print ( "=======设置name属性后=======" ) s10.name = "年龄" #数据名称标签 s10.index.name = "姓名" #索引名称标签 print (s10) |
运行结果:
amy 20
jack 18
lili 23
susan 15
dtype: int64
=======设置name属性后=======
姓名
amy 20
jack 18
lili 23
susan 15
name: 年龄, dtype: int64
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/loveliuzz/article/details/78498077
- python什么是深拷贝什么是浅拷贝(Python深拷贝与浅拷贝用法实例分析)
- python爬虫怎么设置代理ip(python爬虫简单的添加代理进行访问的实现代码)
- 用python制作一个简单的小程序(一个可以套路别人的python小程序实例代码)
- 用python图片转字符串(python实现图片转字符小工具)
- python 内存读写(详解python持久化文件读写)
- python2个字典合成(Python两个字典键同值相加的几种方法)
- python如何解压加密zip文件(python读取有密码的zip压缩文件实例)
- python如何使用yield(YII2.0框架行为Behavior深入详解)
- python装饰器使用说明(详解Python装饰器)
- python表格导出为图片(python生成带有表格的图片实例)
- python用指针合并两个有序数组(Python3实现计算两个数组的交集算法示例)
- python 从入门到实践笔记(python基础梳理一推荐)
- 列表重复数据怎么删除python(Python实现的删除重复文件或图片功能示例去重)
- python按顺序遍历字典(Python字典遍历操作实例小结)
- python数组矩阵操作(Python矩阵和Numpy数组的那些事儿)
- pythondjango后台管理(基于腾讯云服务器部署微信小程序后台服务Python+Django)
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
- 河南尉氏县因地制宜发展果蔬种植 水坡镇绿宝甜瓜变 金瓜(河南尉氏县因地制宜发展果蔬种植)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
热门推荐
- jquery五子棋javascript(原生JavaScript实现简单五子棋游戏)
- 自动化播放声音(video实现有声音自动播放的实现方法)
- line-height 百分比与数值的区别
- react怎么绑定state(react纯函数组件setState更新页面不刷新的解决)
- IEnumerable的用法
- php在if里添加xml代码(PHP创建XML接口示例)
- 怎么搭建服务器然后搭建网站(用自己的电脑做服务器搭建网站并让互联网访问)
- linux怎么退出括号模式(Linux使用stty显示修改终端行设置)
- python中函数最少能定义几个参数(Python函数中不定长参数的写法)
- ftp被动模式改成主动模式(如何设置FTP的主动模式和被动模式 FileZilla主动和被动模式设置方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9