Title

数据分析之pandas模块

Pandas

1.介绍

Pandas使我们进行数据分析的一个主要工具。它是基于Numpy构建的,它所包含的数据结构和数据处理工具的设计使得Python中进行数据清洗和分析非常快捷。pandas一般也是和其他数值计算工具一起使用的,支持大部分Numpy语言风格的数组计算。pandas和numpy最大的区别就是pandas是用来处理表格型或者异质性数据的,而Numpy则刚好相反,它更适合处理同质型的数值类数组数据

2.Pandas的主要功能:

  • 具备对其功能的数据结构DataFrame,Series

  • 集成时间序列功能

  • 提供丰富的数学运算和操作

  • 灵活处理缺失数据

安装方法:

pip install pandas

引用方法:

import pandas as pd

2.1. Series数据结构

Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成

 

 

 

第四种:创建一个值都是0的数组

pd.Series(0,index=['a','b','c']) 
执行结果: a    0
   b    0
   c    0
         dtype: int64

缺失数据

为什么会出现数据缺少的现象呢,看下面的例子

如何处理缺失值

  • dropna:过滤掉值为nan的

  • fillna:将nan进行填充

     

     

     

  • isnull() : 返回布尔数组,缺失值对应为True

  • notnull() :返回布尔数组,缺失值对应为False

2.2 Series特性(和numpy基本一样)
  • 从ndarray创建Series:Series(arr)

  • 与标量(数字):sr * 2

  • 两个Series运算

  • 通用函数:np.ads(sr)

  • 布尔值过滤:sr[sr>0]

  • 统计函数:mean()、sum()、cumsum()

支持字典的特性:

  • 从字典创建Series:Series(dic),

  • In运算:'a'in sr、for x in sr

  • 键索引:sr['a'],sr[['a','b','d']]

  • 键切片:sr['a':'c']

  • 其他函数:get('a',default=0)等

整数索引

pandas当中的整数索引对象可能会让初次接触它的人很懵逼,接下来通过代码演示:

sr = pd.Series(np.arange(10))
sr1 = sr[3:].copy()
sr1
运行结果:
3    3
4    4
5    5
6    6
7    7
8    8
9    9
dtype: int32
# 到这里会发现很正常,一点问题都没有,可是当使用整数索引取值的时候就会出现问题了。因为在pandas当中使用整数索引取值是优先以标签解释的,而不是下标
sr1[1]

解决方法:

  • loc属性 # 以标签解释

  • iloc属性 # 以下标解释

sr1.iloc[1]  # index+location 以自定义index索引解释

sr1.loc[3]  # location 以原索引解释

Series数据对齐

pandas在运算时,会按索引进行对齐然后计算。如果存在不同的索引,则结果的索引是两个操作数索引的并集。

sr1 = pd.Series([12,23,34], index=['c','a','d'])
sr2 = pd.Series([11,20,10], index=['d','c','a',])
sr1 + sr2
运行结果:
a    33
c    32
d    45
dtype: int64
# 可以通过这种索引对齐直接将两个Series对象进行运算
sr3 = pd.Series([11,20,10,14], index=['d','c','a','b'])
sr1 + sr3
运行结果:
a    33.0
b     NaN
c    32.0
d    45.0
dtype: float64
# sr1 和 sr3的索引不一致,所以最终的运行会发现b索引对应的值无法运算,就返回了NaN,一个缺失值

将两个Series对象相加时将缺失值设为0:

sr1 = pd.Series([12,23,34], index=['c','a','d'])
sr3 = pd.Series([11,20,10,14], index=['d','c','a','b'])
sr1.add(sr3,fill_value=0)
运行结果:
a    33.0
b    14.0
c    32.0
d    45.0
dtype: float64
# 将缺失值设为0,所以最后算出来b索引对应的结果为14

灵活的算术方法:add,sub,div,mul

 

2.3 DataFrame

DataFrame是一个表格型的数据结构,相当于是一个二维数组,含有一组有序的列。他可以被看做是由Series组成的字典,并且共用一个索引。

创建方式:

创建一个DataFrame数组可以有多种方式,其中最为常用的方式就是利用包含等长度列表或Numpy数组的字典来形成DataFrame:

第一种

第二种通过Series来创建

获取数据信息

read方法

  • read_csv

 

 

 

  • read_html

 

 

 

通过索引获取需要的信息

将表格修改一下

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-04-01 01:25  Mr江  阅读(173)  评论(0编辑  收藏  举报