python数据分析类库_python数据分析类库系列-Pandas入门之数据结构Series

pandas是后续内容的首选库。它含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具。

在后续部分中,我将使用下面这样的pandas引入约定:

import pandas as pd

要使用pandas,你首先就得熟悉它的两个主要数据结构:Series和DataFrame。虽然它们并不能解决所有问题,但它们为大多数应用提供了一种可靠的、易于使用的基础。

Series由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据即可产生最简单的Series

obj = pd.Series([4, 7, -5, 3])

obj

out

0 4

1 7

2 -5

3 3

dtype: int64

可以通过Series 的values和index属性获取其数组表示形式和索引对象

obj.values

out

array([ 4, 7, -5, 3], dtype=int64)

**************************************************

obj.index

out

RangeIndex(start=0, stop=4, step=1)

通常,我们希望所创建的Series带有一个可以对各个数据点进行标记的索引

obj2 = pd.Series([4, 7, -5, 3],index=['a', 'b', 'c', 'd'])

obj2

out

a 4

b 7

c -5

d 3

dtype: int64

**********************************************************

obj2.index

out

Index(['a', 'b', 'c', 'd'], dtype='object')

与普通NumPy数组相比,你可以通过索引的方式选取Series中的单个或一组值

obj2['a']

out

*************************************

obj2['d']

out

3

使用NumPy函数或类似NumPy的运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引值的链接:

obj2[obj2 >0]

out

a 4

b 7

d 3

dtype: int64

*************************************

obj2 * 2

out

a 8

b 14

c -10

d 6

dtype: int64

*************************************

import numpy as np

np.exp(obj2) #返回e的幂次方,

out

a 54.598150

b 1096.633158

c 0.006738

d 20.085537

dtype: float64

还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。

"b" in obj2

out

True

*************************

"e" in obj2

out

False

如果数据被存放在一个Python字典中,也可以直接通过这个字典来创建Series:

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

obj3 = Series(sdata)

obj3

out

Ohio 35000

Texas 71000

Oregon 16000

Utah 5000

dtype: int64

如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。

states = ['California', 'Ohio', 'Oregon', 'Texas']

obj4 = pd.Series(sdata, index=states)

obj4

out

California NaN

Ohio 35000.0

Oregon 16000.0

Texas 71000.0

dtype: float64

我将使用缺失(missing)或NA表示缺失数据。pandas的isnull和notnull函数可用于检测缺失数据:

pd.isnull(obj4)

out

California True

Ohio False

Oregon False

Texas False

******************************

pd.notnull(obj4)

out

California False

Ohio True

Oregon True

Texas True

dtype: bool

Series也有类似的实例方法:

obj4.isnull()

out

California True

Ohio False

Oregon False

Texas False

dtype: bool

*********************************

obj4.notnull()

out

California False

Ohio True

Oregon True

Texas True

dtype: bool

对于许多应用而言,Series最重要的一个功能是,它会根据运算的索引标签自动对齐数据

obj3 + obj4

out

California NaN

Ohio 70000.0

Oregon 32000.0

Texas 142000.0

Utah NaN

dtype: float64

Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切

obj4.name = 'population'

obj4.index.name = 'state'

obj4

out

state

California NaN

Ohio 35000.0

Oregon 16000.0

Texas 71000.0

Name: population, dtype: float64

Series的索引可以通过赋值的方式就地修改:

obj.index = ['Bob', 'Steve', 'Jeff', 'Ryan']

obj

out

Bob 4

Steve 7

Jeff -5

Ryan 3

dtype: int64

下期我们将分享Pandas中的另一个数据结构--DataFrame,如果喜欢请点赞收藏,您的支持是我最大的动力,谢谢大家,共同进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值