《利用python进行数据分析》——5 pandas入门——读书笔记

本文是《利用python进行数据分析》第五章的读书笔记,主要介绍了pandas库的基础知识,包括Series和DataFrame两种核心数据结构。详细讲解了如何创建、操作和分析这两种数据结构,如构造、属性、缺失数据检测、数据对齐、统计计算等功能,以及一些常用的数据处理函数,如sum、相关系数和协方差等。
摘要由CSDN通过智能技术生成

《利用python进行数据分析》——5 pandas入门——读书笔记

1.pandas简介:

  1. Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建
  2. pandas是《利用python进行数据分析》后续内容的首选库。
  3. pandas含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具
  4. Pandas是字典形式,基于NumPy创建,让NumPy为中心的应用变得更加简单
  5. Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具

pandas 约定俗成的导入方法如下:

In [1]: import pandas as pd

因为Series和DataFrame用的次数非常多,所以将其引入本地命名空间中会更方便:

In [2]: from pandas import Series, DataFrame

2.pandas的数据结构介绍:

两个主要数据结构:Series和DataFrame。

Series 和 DataFrame 分别对应于一维的序列和二维的表结构。


2.1Series

Series是一种类似于一维数组的对象,它由⼀组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组
成。

2.1.1.构造Series

可以看做一个定长的有序字典。基本任意的一维数据都可以用来构造 Series 对象:
仅由一组数据即可产生最简单的Series:

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

In [12]: obj

Out[12]:
0 4
1 7
2 -5
3 3
dtype: int64

2.1.2.Series 的values和index属性

Series的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的
长度)的整数型索引。你可以通过Series 的values和index属性获取其数组表示形式和索引对象:

In [13]: obj.values

Out[13]: array([ 4, 7, -5, 3])

In [14]: obj.index # like range(4)

Out[14]: RangeIndex(start=0, stop=4, step=1)

2.1.3.用字典来创建Series

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

In [26]: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Texas': 71000, 'Utah': 5000}

In [27]: obj3 = pd.Series(sdata)

In [28]: obj3

Out[28]:
Ohio 35000
Oregon 16000
Texas 71000
Utah 5000
dtype: int64

如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。你可以传入排好序的字典的键以改变顺序:

In [29]: states = ['California', 'Ohio', 'Oregon', 'Texas']

In [30]: obj4 = pd.Series(sdata, index=states)

In [31]: obj4

Out[31]:
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
dtype: float64

在这个例子中,sdata中跟states索引相匹配的那3个值会被找出来并放到相应的位置上,但由于"California"所对应的sdata值找不到,所以其结果就为NaN(即“非数字”(not a number),在pandas中,它用于表示缺失或NA值)。因为‘Utah’不在states中,它被从结果中除去。

2.1.4.检测缺失数据

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

In [32]: pd.isnull(obj4)

Out[32]:
California True
Ohio False
Oregon False
Texas False
dtype: bool

In [33]: pd.notnull(obj4)

Out[33]:
California False
Ohio True
Oregon True
Texas True
dtype: bool

Series也有类似检测缺失数据的实例方法:

In [34]: obj4.isnull()

Out[34]:
California True
Ohio False
Oregon False
Texas False
dtype: bool

2.1.5.根据运算的索引标签自动对齐数据

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

In [35]: obj3

Out[35]:
Ohio 35000
Oregon 16000
Texas 71000
Utah 5000
dtype: int64

In [36]: obj4

Out[36]:
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
dtype: float64

In [37]: obj3 + obj4

Out[37]:
California NaN
Ohio 70000.0
Oregon 32000.0
Texas 142000.0
Utah NaN
dtype: float64

2.1.6.name属性

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

In [38]: obj4.name = 'population'

In [39]: obj4.index.name = 'state'

In [40]: obj4

Out[40]:
state
California NaN
Ohio 35000.0
Oregon 16000.0
Texas 71000.0
Name: population, dtype: float64

2.1.7.修改索引

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值