Pandas简介

1、Pandas简介

2、Pandas的数据结构

(1)Series

(2)DataFrame

下一篇:Pandas—DataFrame的读取、保存、增、删、查、改 


1、Pandas简介

    Pandas 是Python的数据处理包,全名:Python Data Analysis Library,Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取、转换、过滤、分析等一系列操作。Pandas库是基于Numpy库来创建的,Numpy主要用于矩阵操作,而Pandas主要用于数据处理。特色是:

  1)支持多种数据格式,甚至包括excel和SQL数据库;

  2)数据对齐,缺失数据处理,数据排序等常规数据整理操作;

  3)基于标签的数据集操作,包括切片和采样等;

  4)高性能的merge和join操作;

  5)支持时序数据操作;

  6)超高性能,核心代码基于C,实测性能远远超过等价的Java实现;

  7)免费;

2、Pandas的数据结构

  Pandas主要有两种重要的数据结构:SeriesDataFrame。Series: 类似一个一维数组,一个Series对应DataFrame的一列DataFrame:类似一个二维数组,一个DataFrame由几个Series列构成。

(1)Series

  一维数据Series 是 Pandas 中最基本的 1 维数据形式。其可以储存整数、浮点数、字符串等形式的数据。Series 的新建方法如下:

s = pandas.Series(data, index=index)

   其中,data 可以是字典、numpy 里的 ndarray 对象等。index 是数据索引,索引是 pandas 数据结构中的一大特性,它主要的功能是帮助我们更快速地定位数据。

  1)字典 -> Series

import pandas as pd

d = {'a' : 10, 'b' : 20, 'c' : 30}
print pd.Series(d)
a    10
b    20
c    30
dtype: int64

我们可以直接通过index=[]来设置新的索引。

d = {'a' : 10, 'b' : 20, 'c' : 30}
s = pd.Series(d, index=['b', 'c', 'd', 'a'])
print s
b    20.0
c    30.0
d     NaN
a    10.0
dtype: float64

你会发现,pandas 会自动匹配人为设定的索引值和字典转换过来的索引值。而当索引无对应值时,会显示为 NaN 缺失值。

  2) ndarray -> Series
  ndarray 是著名数值计算包 numpy 中的多维数组。我们也可以将 ndarray 直接转换为 Series。

import pandas as pd
import numpy as np

data = np.random.randn(5)         # 一维随机数
index = ['a', 'b', 'c', 'd', 'e'] # 指定索引
s = pd.Series(data, index)
print s
a    0.583529
b    1.339164
c   -0.029611
d   -1.331405
e    0.067889
dtype: float64

当我们需要从一维数据 Series 中返回某一个值时,可以直接通过索引完成。如print s['a']。而当我们非人为指定索引值时,Pandas 会默认从 0 开始设置索引值。

s = pd.Series
print s
0    0.583529
1    1.339164
2   -0.029611
3   -1.331405
4    0.067889
dtype: float64 

除此之外,Series 是可以直接进行运算的。例如:

print 2*s
0    1.167059
1    2.678328
2   -0.059222
3   -2.662811
4    0.135778
dtype: float64

print s-s
0    0.0
1    0.0
2    0.0
3    0.0
4    0.0
dtype: float64

(2)DataFrame

    DataFrame 是 Pandas 中最为常见、最重要且使用频率最高的数据结构。你可以想到它箱型为电子表格或 SQL 表具有的结构。DataFrame包括三部分信息,表头(列的名称),表的内容(二维矩阵),索引(每行一个唯一的标记)。DataFrame 可以被看成是以 Series 组成的字典。它和 Series 的区别在于,不但具有行索引,且具有列索引。DataFrame 可以用于储存多种类型的输入:
    >> 一维数组、列表、字典或者 Series 字典。
    >> 二维 numpy.ndarray。
    >> 结构化的 ndarray。
    >> 一个 Series。
    >> 另一个 DataFrame。

1)通过list创建

import pandas as pd
df = pd.DataFrame([[1,2,3],[4,5,6]])
df
   0  1  2
0  1  2  3
1  4  5  6

  上面代表,创建了一个2行3列的表格,创建时只指定了表格的内容(通过一个嵌套的list),没有指定列名和索引。
这时列名就自动为 0,1,2 ;索引自动为数值0,1.
  我们可以指定列名和索引:

df = pd.DataFrame([[1,2,3],[4,5,6]],index=['row1','row2'],columns=['c1','c2','c3'])
df
       c1  c2  c3
row1   1   2   3
row2   4   5   6

2)通过numpy生成的数组创建

df3 = pd.DataFrame(np.array([[1,2],[3,4]]), columns=['col1','col2'], index=['a','b'])
print (df3)
   col1  col2
a     1     2
b     3     4

3)通过字典创建

df4 = pd.DataFrame({'col1':[1,3],'col2':[2,4]},index=['a','b'])
print (df4)
    col1  col2
a     1     2
b     3     4

注意:创建DataFrame对象的数据可以为列表,数组和字典,列名和索引为列表对象。

4)DataFrame的状态信息

  获取数据的行数、获取形状

len(df)    # 返回DataFrame的行数
df.shape   # 返回DataFrame的形状,一个二元组(a,b),a为行数,b为列数

  显示索引、列、矩阵数据

df.index    # 获取行索引
df.columns  # 获取列索引
df.values   # 获取表中的值

  修改列名:

a = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6], 'C':[7,8,9]})
print a
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

a.rename(columns={'A':'a', 'B':'b', 'C':'c'}, inplace = True)
print a
   a  b  c
0  1  4  7
1  2  5  8
2  3  6  9

  查看DataFrame的描述信息:

DataFrame.info()
DataFrame.dtype
DataFrame.describe()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值