Python For Data Analysis -- Pandas

简介:

首先pandas的作者就是这本书的作者 
对于Numpy,我们处理的对象是矩阵 
pandas是基于numpy进行封装的,pandas的处理对象是二维表(tabular, spreadsheet-like),和矩阵的区别就是,二维表是有元数据的 
用这些元数据作为index更方便,而Numpy只有整形的index,但本质是一样的,所以大部分操作是共通的

大家碰到最多的二维表应用,关系型数据库中的表,有列名和行号,这些就是元数据 
当然你可以用抽象的矩阵来对这些二维表做统计,但使用pandas会更方便

 

Introduction to pandas Data Structures

Series

A Series is a one-dimensional array-like object containing an array of data (of any NumPy data type) and an associated array of data labels, called its index. 
简单的理解,就是字典,或一维表;不显式指定index时,会自动添加 0 through N - 1的整数作为index

image

image

这里可以简单的替换index,生成新的series,

image

大家想想,对于Numpy而言,没有显式的指定index,但也是可以通过整形的index取到数据的,这里的index其实本质上和numpy的整形index是一样的 
所以对于Numpy的操作,也同样适用于pandas

image

image

同时,上面说了series其实就是字典,所以也可以用python字典来初始化

image

 

DataFrame

A DataFrame represents a tabular, spreadsheet-like data structure containing an ordered collection of columns, each of which can be a different value type (numeric, string, boolean, etc.).

如果接触过R,应该对DataFrame很熟悉,其实pandas就从某种程度上模拟出R的一些功能 
所以如果用python也可以像R一样方便的做统计,那何必要再去用R

上面Series是字典或一维表, 
DataFrame是二维表,也可以看作是series的字典

image

image

指定了列名,行名是自动生成的

同时也可以指定行名,这里增加了debt列,但是没有数据,所以是NaN

image

可以为debt,赋值

image

取行,用ix

image

也可以用嵌套字典来创建Dataframe,其实是series的字典,series本身就是字典,所以就是嵌套的字典

image

image

可以像numpy矩阵一样,转置

image

 

Essential Functionality

下面看看到底pandas在这些数据结构上提供了哪些方便的functions

Reindexing

A critical method on pandas objects is reindex, which means to create a new object with the data conformed to a new index.

其实就是更改indexing

image

增加e,并默认填上0

image

还可以通过method参数,来指定填充方式

image

可以选择向前或向后填充

image

对于二维表,可以在index和columns上同时进行reindex

image

image

image

reindex的参数,

image

 

Dropping entries from an axis

用axis指定维度,对于二维表,行是0,列是1

image

 

Indexing, selection, and filtering

基本和Numpy差不多

image

 

Arithmetic and data alignment

数据对齐和自动填充是pandas比较方便的一点

In [136]: df1 = DataFrame(np.arange(12.).reshape((3, 4)), columns=list('abcd')) 
In [137]: df2 = DataFrame(np.arange(20.).reshape((4, 5)), columns=list('abcde'))

image

可以看到默认情况下,只有两个df都有的情况下,才会相加,否则为NaN 
我觉得大部分情况,应该是希望有一个就加一个,即把没有的初始化为0

image

除了add,还支持

image

 

Function application and mapping

1. Element-wise:NumPy ufuncs (element-wise array methods) work fine with pandas objects:

image

另一种element-wise,使用applymap

image

 

2. 可以将func apply到每一行或每一列

image

比较复杂的case

image

image

 

3.对于某个行或列,即series进行map

image

 

Summarizing and Computing Descriptive Statistics

提供很多类似R的统计函数,

image

image

image

image

提供类似R中的descirbe,很方便

image

对非数值型,执行describe

image

汇总表,

image

 

Correlation and Covariance,相关系数和协方差

image

对MSFT和IBM之间求相关系数和协方差

image

也可以求出相关系数矩阵和协方差矩阵

image

 

Unique Values, Value Counts, and Membership

In [217]: obj = Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c'])

In [218]: uniques = obj.unique() 
In [219]: uniques 
Out[219]: array([c, a, d, b], dtype=object)

In [220]: obj.value_counts() 
Out[220]: 
c 3 
a 3 
b 2 
d 1

image

 

Handling Missing Data

提供一些用于处理missing data的工具函数

image

其中fillna复杂些,

image

image

image

 

Hierarchical Indexing

Hierarchical indexing is an important feature of pandas enabling you to have multiple (two or more) index levels on an axis. Somewhat abstractly, it provides a way for you to work with higher dimensional data in a lower dimensional form.

可以使用多层分级的index,其实本质等同于增加一维,所以相当于用低维来模拟高维数据

image

image

image

并且是支持,通过unstack和stack来还原多维数据的

image

image

 

Pandas还提供其他功能,尤其是ETL功能,方便数据处理

比如和各种文件读入和写出的功能

cleaning, transform(基于map), merge(join)……


本文章摘自博客园,原文发布日期:2014-08-12

目录
相关文章
|
22天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
53 0
|
8天前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
9天前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
16天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
35 2
|
24天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
48 5
|
23天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
31 2
|
8天前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南
|
14天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
14天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
1月前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
54 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
下一篇
无影云桌面