博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 【Series: 一维数据对象】
阅读量:3941 次
发布时间:2019-05-24

本文共 2608 字,大约阅读时间需要 8 分钟。

Series: 一维数据对象

    今天简单介绍一下series这种数据对象。

    Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成,Series比较像列表(数组)和字典的结合体。

1. 准备过程

    由于series更适合在ipython的环境进行操作,所以以下代码均是在ipython的环境下进行操作的。如果还没安装ipython的读者,可以参照我前面安装pandas的方法(),pip install ipython安装一下。安装后直接输入ipython启动就好了。启动后,import pandas as pd!

2. 创建方式

# 三种方法# 法一In [5]: pd.Series([4,7,-5,3])Out[5]:0    41    72   -53    3dtype: int64# 法二In [6]: pd.Series([4, 7, -5, 3], index=['a', 'b', 'c', 'd'])Out[6]:a    4b    7c   -5d    3dtype: int64# 法三In [7]: pd.Series({
'a':1,'b':2})Out[7]:a 1b 2dtype: int64# 获取值数组和索引数组:values属性和index属性In [8]: sr = pd.Series([4, 7, -5, 3], index=['a', 'b', 'c', 'd'])In [9]: sr.valuesOut[9]: array([ 4, 7, -5, 3], dtype=int64)In [10]: sr.indexOut[10]: Index(['a', 'b', 'c', 'd'], dtype='object')

3. Series-使用特性:

1. series支持array的特性(下标)∶   1. 从ndarray创建Series: Series(arr)   2. 与标量运算:sr*2   3. 两个Series运算: sr1+sr2   4. 索引: sr[0], sr[[1,2,4]   5. 切片: sr[O:2]   6. 通用函数: np.abs(sri)   7. 布尔值过滤sr[sr>o]2. Series支持字典的特性(标签)∶   1. 从字典创建Series: Series(dic)    2. in运算: 'a'in sr   3. 键索引: sr['a'], sr[['a','b','d']]

4. Series-数据对齐:

举个series相加的例子吧:

In [16]: sr1 = pd.Series([12,23,34],index=['c','a','d'])In [17]: sr2 = pd.Series([11,20,10],index=['d','c','a'])In [18]: sr1+sr2Out[18]:a    33c    32d    45dtype: int64

    pandas在进行两个Series对象的运算时,会按索引(标签)进行对齐然后计算,比如上面这个栗子,得到的结果中,索引a的值=sr1[‘a’] + sr2[‘a’] =33,其他两个值也是同样道理。

    但是当两个series对象中,其中一个对象中有的索引,而另一个对象没有,相加的时候,该索引的值为NAN如下:

In [19]:  sr1 = pd.Series([12,23,34],index=['c','a','g'])In [20]: sr2 = pd.Series([11,20,10],index=['d','c','a'])In [21]: sr1 + sr2Out[21]:a    33.0c    32.0d     NaNg     NaNdtype: float64

5. 常用函数和方法:

  1. add函数

    # 如果直接用的话,那么add是和sr1+sr2效果一样的 In [22]: sr1.add(sr2) Out[22]: a    33.0 c    32.0 d     NaN g     NaN dtype: float64  # 设置一下参数后, 则会被有的那一个值填充: In [23]: sr1.add(sr2, fill_value=0) Out[23]: a    33.0 c    32.0 d    11.0 g    34.0 dtype: float64
  2. 缺失数据处理:

    1. 法一: 直接删除
      首先判断一下是否有缺失值:
    sr.isnull()  缺失值的地方返回True,反正返回Falsesr.notnull()  缺失值的地方返回False,反正返回True
    In [24]: sr = sr1.add(sr2)In [25]: srOut[25]:a    33.0c    32.0d     NaNg     NaNdtype: float64In [26]: sr.isnull()Out[26]:a    Falsec    Falsed     Trueg     Truedtype: boolIn [27]: sr.notnull()Out[27]:a     Truec     Trued    Falseg    Falsedtype: bool

    再把缺失值行给删掉:

    # 法一: 用布尔索引In [28]: sr[sr.notnull()]Out[28]:a    33.0c    32.0dtype: float64# 法二: 用sr.dropna()方法In [30]: sr.dropna()Out[30]:a    33.0c    32.0dtype: float64
    1. 用值填充:
    # 用0填充In [31]: sr.fillna(0)Out[31]:a    33.0c    32.0d     0.0g     0.0dtype: float64 # 用平均值填充In [32]: sr.fillna(sr.mean())Out[32]:a    33.0c    32.0d    32.5g    32.5dtype: float64

就简单介绍到这里吧!

转载地址:http://tfiwi.baihongyu.com/

你可能感兴趣的文章
linux shell 中数组的定义和for循环遍历的方法
查看>>
求1!+2!+3!....+20!(java代码)
查看>>
VMware安装Ubuntu系统无法选择语言
查看>>
QT5.12安装
查看>>
Git/Github初步使用记录
查看>>
QT 开发问题合集
查看>>
Github使用问题合集
查看>>
QT多线程服务器
查看>>
Ubuntu 18.04.2 ulimit配置
查看>>
Ubuntu Mysql 安装与配置
查看>>
QT5.12 Mysql驱动未能加载问题
查看>>
现场直击|SequoiaDB@SIGMOD 2021:关注数据库的根科技存储技术
查看>>
赋能政企智慧办公,巨杉数据库与致远互联完成产品互认证
查看>>
SequoiaDB湖仓一体架构亮相 ACM SIGMOD 2021
查看>>
信通院发布第十二批大数据产品能力评测结果,巨杉数据库两款产品通过
查看>>
巨杉数据库荣获2020年度河南省科学技术进步奖
查看>>
湖仓一体提升管理效率 培育数据沃土
查看>>
报名启动!巨杉数据库 2021 湖仓一体技术大赛带你进入分布式技术的星辰大海
查看>>
H2数据库用户自定义函数方法及范例
查看>>
关于系统中使用多个PropertyPlaceholderConfigurer的配置
查看>>