一、创建Series

参数

  1. - Series (Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引。
  2. - data 参数
  3. - index 索引 索引值必须是唯一的和散列的,与数据的长度相同。 默认np.arange(n)如果没有索引被传递。
  4. - dtype 输出的数据类型 如果没有,将推断数据类型
  5. - copy 复制数据 默认为false

数组创建

  1. data = ['a','b','c','d','e']
  2. res= pd.Series(data,index=[i for i in range(1,6)],dtype=str)
  3. print(res)
  4.  
  5. 1 a
  6. 2 b
  7. 3 c
  8. 4 d
  9. 5 e
  10. dtype: object

字典创建

  1. data = {"a":1.,"b":2,"c":3,"d":4}
  2. res = pd.Series(data,index=["d","c","b","a"])
  3. print(res) # 字典的键用于构建索引
  4.  
  5. d 4.0
  6. c 3.0
  7. b 2.0
  8. a 1.0
  9. dtype: float64

常量创建

  1. # 如果数据是常量值,则必须提供索引。将重复该值以匹配索引的长度。
  2. res = pd.Series(5,index=[1,2,3,4,5])
  3. print(res)
  4.  
  5. 1 5
  6. 2 5
  7. 3 5
  8. 4 5
  9. 5 5
  10. dtype: int64

二、数据查询

切片

  1. data = [1,2,3,4,5]
  2. res = pd.Series(data,index=["a","b","c","d","e"])
  3. print(res[0:3],"---") # 这里跟python的切片一样
  4. print(res[3],"---")
  5. print(res[-3:],"---")
  6.  
  7. a 1
  8. b 2
  9. c 3
  10. dtype: int64 ---
  11.  
  12. 4 ---
  13.  
  14. c 3
  15. d 4
  16. e 5
  17. dtype: int64 ---

使用索引检索数据

  1. data = [1,2,3,4,5]
  2. res = pd.Series(data,index=["a","b","c","d","e"])
  3. print(res["a"])
  4. # 检索多个值 标签用中括号包裹
  5. print(res[["a","b"]]) # 如果用没有的标签检索则会抛出异常KeyError: 'f'
  6.  
  7. 1
  8.  
  9. a 1
  10. b 2
  11. dtype: int64
  1. data = [1,2,3,4,5]
  2. res = pd.Series(data)
  3. res[[2,4]]
  4.  
  5. 2 3
  6. 4 5
  7. dtype: int64

使用head()/tail()查看前几个或后几个

  1. data = [1,2,3,4,5]
  2. res = pd.Series(data,index=["a","b","c","d","e"])
  3. res.head(3) # 查看前三个
  4. res.tail(2) # 查看后两个

三、其他操作

series元素进行去重

unique() 对series元素进行去重

  1. s = pd.Series(data=[1,1,2,2,3,4,5,6,6,6,7,6,6,7,8])
  2. s.unique()
  3.  
  4. array([1, 2, 3, 4, 5, 6, 7, 8], dtype=int64)

两个series元素相加

Series之间的运算

- 在运算中自动对齐不同索引的数据
- 如果索引不对应,则补NaN

  1. # 当索引没有对应的值时,可能出现缺失数据显示NaN(not a number)的情况
  2. s1 = pd.Series(data=[1,2,3,4,5],index=["a","b","c","d","e"])
  3. s2 = pd.Series(data=[1,2,3,4,5],index=["a","b","c","d","f"])
  4. s = s1 + s2
  5. s
  6.  
  7. a 2.0
  8. b 4.0
  9. c 6.0
  10. d 8.0
  11. e NaN
  12. f NaN
  13. dtype: float64

监测缺失的数据

  1. isnull() # 缺失的数据返回的布尔值为True
  2. notnull() # 缺失的数据返回的布尔值为False

isnull

  1. s1 = pd.Series(data=[1,2,3,4,5],index=["a","b","c","d","e"])
  2. s2 = pd.Series(data=[1,2,3,4,5],index=["a","b","c","d","f"])
  3. s = s1 + s2
  4. s.isnull() # 缺失的数据返回的布尔值为True
  5.  
  6. a False
  7. b False
  8. c False
  9. d False
  10. e True
  11. f True
  12. dtype: bool

notnull

  1. s1 = pd.Series(data=[1,2,3,4,5],index=["a","b","c","d","e"])
  2. s2 = pd.Series(data=[1,2,3,4,5],index=["a","b","c","d","f"])
  3. s = s1 + s2
  4. s.notnull() # 缺失的数据返回的布尔值为False
  5.  
  6. a True
  7. b True
  8. c True
  9. d True
  10. e False
  11. f False
  12. dtype: bool

如果将布尔值作为Serrise的索引,则只保留True对应的元素值

  1. s[[True,True,False,False,True,True]]
  2.  
  3. a 2.0
  4. b 4.0
  5. e NaN
  6. f NaN
  7. dtype: float64

根据上面的特性,可以取出所有空的数据和所有不为空的数据

  1. s[s.isnull()] # 取所有空值
  2.  
  3. e NaN
  4. f NaN
  5. dtype: float64
  6.  
  7. s[s.notnull()] # 取出不为空的数据
  8.  
  9. a 2.0
  10. b 4.0
  11. c 6.0
  12. d 8.0
  13. dtype: float64
  14.  
  15. s.index # 取出索引
  16.  
  17. Index(['a', 'b', 'c', 'd', 'e', 'f'], dtype='object')

pandas入门之Series的更多相关文章

  1. 利用Python进行数据分析——pandas入门

    利用Python进行数据分析--pandas入门 基于NumPy建立的 from pandas importSeries,DataFrame,import pandas as pd 一.两种数据结构 ...

  2. Python 数据处理库 pandas 入门教程

    Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...

  3. 利用python进行数据分析之pandas入门

    转自https://zhuanlan.zhihu.com/p/26100976 目录: 5.1 pandas 的数据结构介绍5.1.1 Series5.1.2 DataFrame5.1.3索引对象5. ...

  4. 利用python进行数据分析--pandas入门2

    随书练习,第五章  pandas入门2 # coding: utf-8 # In[1]: from pandas import Series,DataFrame import pandas as pd ...

  5. 利用python进行数据分析--pandas入门1

    随书练习,第五章  pandas入门1 # coding: utf-8 # In[1]: from pandas import Series, DataFrame # In[2]: import pa ...

  6. pandas 入门(3)

    from pandas import Series, DataFrame, Index import numpy as np # 层次化索引 对数据重塑和分组操作很有用 data = Series(n ...

  7. < 利用Python进行数据分析 - 第2版 > 第五章 pandas入门 读书笔记

    <利用Python进行数据分析·第2版>第五章 pandas入门--基础对象.操作.规则 python引用.浅拷贝.深拷贝 / 视图.副本 视图=引用 副本=浅拷贝/深拷贝 浅拷贝/深拷贝 ...

  8. python数据分析之pandas库的Series应用

    一.pandas的数据结构介绍 1. Series 1.1 Series是由一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据索引构成.仅由一组数据可产生最简单的Series. from p ...

  9. 二、pandas入门

    import numpy as np import pandas as pd Series: #创建Series方法1 s1=pd.Series([1,2,3,4]) s1 # 0 1 # 1 2 # ...

随机推荐

  1. Unable to resolve service for type 'Microsoft.AspNetCore.Http.IHttpContextAccessor'

    An unhandled exception occurred while processing the request. InvalidOperationException: Unable to r ...

  2. asp.net类似于js中的setTimeOut()的函数作用?

    asp.net类似于js中的setTimeOut()的函数作用? 插入这行即可,定时2秒,再运行下一步: System.Threading.Thread.Sleep(); 加个随机数 Random r ...

  3. vue 集成 vis-network 实现网络拓扑图

    vis.js  网站 https://visjs.org/ vs  code 下安装命令 npm install vis-network 在vue  下引入 vis-network组件 const v ...

  4. GraphQL实战篇(一)

    看过基础篇的都知道,GraphQL创建Schema有两种方式,Schema First和Graph Type,前者使用GraphQL Schema Language类似于EF的DB First:后者和 ...

  5. 二、eureka服务端注册服务

    所有文章 https://www.cnblogs.com/lay2017/p/11908715.html 正文 入口 上文我们说到,eureka是使用jersey来对外提供restful风格的rpc调 ...

  6. python matplotlib绘制六种可视化图表

    1. 折线图 绘制折线图,如果你数据不是很多的话,画出来的图将是曲折状态,但一旦你的数据集大起来,比如下面我们的示例,有100个点,所以我们用肉眼看到的将是一条平滑的曲线. 这里我绘制三条线,只要执行 ...

  7. JS 百度地图 地图线路描绘

    JS 百度地图 地图线路描绘 <script type="text/javascript" src="http://api.map.baidu.com/api?v= ...

  8. js判断img是否存在

    利用image对象的onerror事件来判断,出错则更换image对象的src为默认图片的URL. <p>第一种情况:图片存在,正常显示    <img src="http ...

  9. 【问题】redhat安装dig

    转自:https://blog.csdn.net/ricky_hust/article/details/8868131 最终可行的方法 在linux下没有单独的dig和nslookup的包,而是以bi ...

  10. idou老师教你学Istio 26:如何使用Grafana进行可视化监控

    使用Grafana插件进行监控是Istio提供的监控能力之一.Istio提供丰富的监控能力,Grafana插件在Istio对Prometheus支持的基础上,为用户提供基于网页仪表面板的可视化监控效果 ...