python数据处理:pandas基础

本文资料来源:

  Python for Data Anylysis: Chapter 5

  10 mintues to pandas: http://pandas.pydata.org/pandas-docs/stable/10min.html#min

1. Pandas简介

经过数年的发展,pandas已经成为python处理数据中最常被使用的package。以下是开发pandas最开始的目的,也是现在pandas最常用的功能

  a: Data structures with labeled axes supporting automatic or explicit data alignment(数据调整). This prevents common errors resulting from misaligned data and working with differently-indexed data coming from differernt sources.

  b: Integrated time series functionality

  c: The same data structures handle both time series data and non-time series data.

  d: Arithmetic operations and reductions (like summing across an axis) would pass on the metadata(axis labels,元数据)。

  e: Flexible handling of missing data

  f: Merge and other relational operations found in popular database databases(SQL-based, for example)

有一篇文章“Don‘t use Hadoop when your data isn‘t that big ”指出:只有在超过5TB数据量的规模下,Hadoop才是一个合理的技术选择。所以一般处理<5TB的数据量的时候,python pandas已经足够可以应付。

2. pandas data structure

2.1 Series

Series是一个一维的array-like对象,由两部分组成:1. 任意numpy数据类型的array 2. 数据标签,称之为index。

因此一个series有两个主要参数:values和index

示例为创建一个series,获得其value和index的过程

通过传递一个能够被转换成类似序列结构的字典对象来创建一个Series:

字典的key作为index表示。在Series中还可以加入index参数来规定index的顺序,其value会自动根据key来匹配数值。

Series有一个重要的特征就是:在进行数学运算时,它的对齐特征(Data alignment features)可以自动调整不同index的数据,以便同一种数据进行数学运算。

而且Series对象本身和index参数都有一个参量为name,比如obj.name=‘population‘, obj.index.name = ‘state‘

2.2 DataFrame

DataFrame可以用来表达图表类型、数据库关系类型的数据,它包含数个顺序排列的columns,每个col中的数据类型一致,但是col彼此间数据类型可以不一致。

DataFrame有两个index:row和column

create  dataframe的方法:通过同等长度的list或者array或者tuples的dictionary,通过nested dict of dicts, 通过dicts of seires等等,详见书本table5.1

提取列:通过obj3[‘state‘]或者obj3.year获取列的信息,返回类型为Series,与DataFrame有同样的index

提取row:用ix函数以及row的位置信息或者名字

常用函数:

del:删除列  del obj[‘year‘]

常见参数:index和 columns都有name参数,value

2.3 index ojbect和reindexing

pandas index的作用:for holding the axis labels and other metadata(like the axis name or names)

Index对象是不变的,意思就是无法被用户修改,所以下列code无法通过,这个对应了我们简介中所说的a这一条

reindex()方法可以对指定轴上的索引(index)进行改变/增加/删除操作,这将返回原始数据的一个拷贝

reindex()中参数介绍:

    index:新的index,代替原来的,原来的index不会copy。pandas的处理一般都会自动copy原始value,这点与ndarry不同

    method:有ffill和bfill

    fill_value:填补NAN value

    copy等等

3.查看数据

   3.1 sorting:返回一个排序好的object

    a:按照轴(行列)进行排序

      sort_Index()

      参数介绍:默认按照row排序,axis=1即按照列

           默认升序,降序ascedning=False

    b:按照value排序

      order():缺值排在末尾

  3.2 ranking

    rank():按照值出现的顺序赋值,返回一个新的obj。有同样的值的时候,默认返回排序的mean

    

  3.3 unique

    is_unique: tell you whether its values are unique or not,返回true or false

    unique:返回不重复的值,返回一个array

  3.4 value_count:计算序列中各个值出现的次数

    

  3.5 describe() 对于数据快速统计汇总

4.选择数据

  4.1 drop

  drop行:

  pandas的处理一般都会自动copy原始value,这点与ndarry不同,举例如下,drop一行之后调用原始对象,发现没有改变

    

  drop列:obj4.drop(‘Nevada‘,axis=1)

      在python很多函数的参数中,默认都是考虑row的,所以有axis(轴)这个参数      

      axis=1 为垂直的,即列    

      axis=0 为水平的,即行

  4.2 选择selection,切片slicing,索引index 

  a 选择一个单独的列,这将会返回一个Series,df[‘A‘] 和 df.A一个意思

  b:  通过[]进行选择,这将会对行进行切片

  c:  通过标签选择:endpoint is inclusive 即obj[‘b‘:‘c‘]包含‘c‘行

  d:  选择row和columns的子集:ix

  f:  通过标签进行索引: loc

      

  e:  通过位置进行索引: iloc

     ` 

  4.3 使用isin()方法来过滤:

    用于过滤数据

    

5.缺失值处理

  5.1 missing value

    pandas用NaN(floating point value)来表示missing data

   5.2 去掉包含缺失值的行或者列

    dropna

    参数说明:how=‘all‘ only drop row that all NA

           axis=1, drop column

          thresh=3, 只保留还有3个obseration的行

  5.3 对缺失值进行填充

    fillna

  5.4 isnull:返回like-type对象,包含boolean values指明value是否为缺失值

    notnull: isnull的反作用

6.计算函数

  a:对于不同index的两个df对象相加“+”,其结果与数据库中union类似,缺失值为NaN

  b:具体的加减用add()或者sub(),缺失值可以用fill_value代替

  c:sum,count,min,max等等,包含一些method

  d:correlation and covariance

     .corr()

     .cov()

7.合并 reshape

8.分组

  对于”group by”操作,我们通常是指以下一个或多个操作步骤:

  (Splitting)按照一些规则将数据分为不同的组;

  (Applying)对于每组数据分别执行一个函数;

  (Combining)将结果组合到一个数据结构中;

注:本文并不全面,仅仅总结了目前我所需要的部分。

时间: 2024-10-24 09:00:23

python数据处理:pandas基础的相关文章

【Python】pandas基础

pandas基础 pandas:主要进行数据清理和数据分析 1.pandas数据结构 1.1 Series 1.1.1 Series可以是一种一维数组型对象. 包含一个值序列,并且包含数据标签,称为索引(index). 创建Series 创建Series,不指定索引或指定索引 obj = pd.Series([1, 3, 5, 7]) obj = pd.Series([1, 2, 3, 4], index = ['a', 'b', 'c', 'd']) 数据访问 Series对象有values和

Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 第9节 绘图和可视化 pandas 回顾 一.实验简介 学习数据分析的课程,需要同学们掌握好 Python 的语言基础,和对 Numpy 与 Matplotlib 等基本库有一些了解.同学们可以参考学习实验楼的 Python 语言基础教程与 Python 科学计算的课程. pandas 是后面我们

Pandas基础学习与Spark Python初探

摘要:pandas是一个强大的Python数据分析工具包,pandas的两个主要数据结构Series(一维)和DataFrame(二维)处理了金融,统计,社会中的绝大多数典型用例科学,以及许多工程领域.在Spark中,python程序可以方便修改,省去java和scala等的打包环节,如果需要导出文件,可以将数据转为pandas再保存到csv,excel等. 1.Pandas是什么? pandas是一个强大的Python数据分析工具包,是一个提供快速,灵活和表达性数据结构的python包,旨在使

基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础

在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数据集. 所以可以是如下的 dictionary 的形式: web_stats = {'Day':[1,2,3,4,5,6], 'Visitors':[43,34,65,56,29,76], 'Bounce Rate':[65,67,78,65,45,52]} 我们可以通过如下方式把这个 dictio

python 数据处理学习pandas之DataFrame

请原谅没有一次写完,本文是自己学习过程中的记录,完善pandas的学习知识,对于现有网上资料的缺少和利用python进行数据分析这本书部分知识的过时,只好以记录的形势来写这篇文章.最如果后续工作定下来有时间一定完善pandas库的学习,请见谅!                     by LQJ 2015-10-25 前言: 首先推荐一个比较好的Python pandas DataFrame学习网址 网址: http://www.cnblogs.com/chaosimple/p/4153083

python学习笔记(四):pandas基础

pandas 基础 serise import pandas as pd from pandas import Series, DataFrame obj = Series([4, -7, 5, 3]) obj 0 4 1 -7 2 5 3 3 dtype: int64 obj.values array([ 4, -7, 5, 3], dtype=int64) obj.index RangeIndex(start=0, stop=4, step=1) obj[[1,3]] # 跳着选取数据 1

Python&lt;10&gt;文件基础

常见的文件操作 output = open('data','w')       #创建文件 w为写入 input = open('data','r')        #r为读写 若不写属性  默认为r aString = input.read()          #读整个文件到一个字符串 aString = input.readlines()      #读整个文件到字符串列表 aString = input.read(N)         #读N个字节 aString =input.read

利用Python进行数据分析 基础系列随笔汇总

一共 15 篇随笔,主要是为了记录数据分析过程中的一些小 demo,分享给其他需要的网友,更为了方便以后自己查看,15 篇随笔,每篇内容基本都是以一句说明加一段代码的方式, 保持简单小巧,看起来也清晰 ,一共可以划分为三个大部分: 第一部分简单介绍数据分析,以一个小例子简单说明了什么是数据分析和 IPython 工具: 第二部分是 NumPy 的基础使用,NumPy 是 Python 包,提供科学计算功能,主要是 ndarray 数组对象: 第三部分是 pandas 的基础使用,主要是 Seri

[转]python与numpy基础

来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb python与numpy基础 寒小阳(2016年6月) Python介绍 如果你问我没有编程基础,想学习一门语言,我一定会首推给你Python类似伪代码的书写方式,让你能够集中精力去解决问题,而不是花费大量的时间在开发和debug上同时得益于Numpy/Scipy这样的科学计算库,使得其有非常高效

数学之路-python数据处理(1)

Pandas基础 import pandas aspd import numpy as np #数字序列 myseries=pd.Series([1,3,5,np.nan,6,8]) print myseries #日期序列 mydate=pd.date_range('20150101',periods=42) print mydate 生成序列 结果如下: 0    1 1    3 2    5 3  NaN 4    6 5    8 dtype: float64 <class'panda