Pandas是基于Numpy的一种工具,这个工具是为了解决数据分析任务而建立的,pandas归入了大量的库和一些标准的数据模型,提供了高效的操做大型数据集所需的工具,pandas提供了大量能使咱们快速便捷的处理数据的函数和方法。Pandas是使Python成为强大而高效的数据分析环境的重要因素之一。另外html
在pandas包含了三种数据结构:html5
下面咱们就介绍一下Series和DataFrame这两种经常使用的数据结构,Time-series时间序列,咱们后期会专门在开一篇文章仔细的去讲述一下。python
1、Seriesmysql
Series是一维数组,与Numpy中的一维array相似。两者与Python基本的数据结构List也很相近,其区别是:List中的元素能够是不一样的数据类型,而Array和Series中则只容许存储相同的数据类型,这样能够更有效的使用内存,提升运算效率,而且series能够运用Ndarray或字典的几乎全部索引操做和函数,融合了字典和ndarray的优势。sql
一、series索引数据库
Series类型是由一组数据及与之相关的数据索引组成编程
自动索引:不建立系统自动建立索引。json
自定义索引:自定义索引,建立完自定义索引后,自动索引也在。数组
Series是一维带’标签’数组,它的基本操做相似Ndarray和字典,genuine索引对齐。数据结构
二、建立对象
Series(列表/元组/字典/标量/Numpy数组/range等序列,<index=param1>)不写index会自动建立索引,若是写定指定索引,index能够是列表,numpy数组。
列子以下:
能够看出index('a', 'b', 'c', 'd', 'e')分别对应1,3,5,7,9
字典的key做为索引,value做为值
若是字典中在设置index,就至关因而从字典中挑选数据
Index能够是列表,元组,range序列,numpy数组
三、属性
Series的主要属性包括index和values两部分
属性
说明
Values
获取数据,底层存储的是numpy数组
Index
获取索引
还有两个不过重要的属性
Name
Series的name(在DataFrame中没有Name属性)
Index.name
索引的name
还有一些相似于numpy数组的属性,好比dtype和shape等。
下面是一些属性的列子:
3.1Values值
3.2Index索引
3.3Name,series的名字
3.4Index,series索引的名字
四、选取
经过自定义索引访问,保留字in操做,使用.get()方法
PS:.get(key,default=none)函数返回指定键的值,若是值再也不字典中则返回默认值(默认为空),key是要查找的键,default是设置的默认值。
五、series类型对齐操做
Series+series,series类型在运算中会自动对齐不一样索引的数据。
六、获取,设置,删除等
6.1获取值
因为具有numpy数组和字典的特性,series能够像使用numpy数组的索引切片或用字典的get同样来用。
6.2设置/修改:索引和切片
6.3删除
drop方法(结果改变)和pop(像字典的用法,改变自身)
2、DataFrame
DataFrame类型由公用相同索引的一组序列组成,是一个表格型的数据类型,每列值类型能够不一样。DataFrame即有行索引也有列索引:
DataFrame经常使用于表达二维数据,但能够表达多维数据,基本操做相似于Series,依据行列索引
一、DataFrame的建立
1.一、从内存中建立
语法:
DataFrame(字典/列表/numpy数组/DataFrame,index=0,columns=1)也能够在建立的时候不指定index和columns,在建立完后单独设置这两个属性。
经常使用的参数:
例子:
手动建立行索引和列索引,方法1:建立的时候就设置好行列索引
手动建立行列索引,方法2:建立的时候设置自动索引,以后在修改
手动输入数组
使用方法生成数组
手动建立列索引,行索引自动建立
手动建立列索引,手动建立行索引
1.二、从文件中建立
DataFrame能够从文件中建立:
文件第一行默认做为列索引(columns),默认为没有行索引,能够经过indx_dol参数设置第1列或前几行做为行索引。若是第一行不做为列索引,设置header=none。
文件编码为utf-8,能够经过参数encoding设置编码。
方式
做用
pd.read_csv(filename)
从CSV文件导入数据, 文件是逗号分隔。
pd.read_table(filename,<sep='t'>)
从限定分隔符的文本文件导入数据,默认是 tab
pd.read_excel(filename)
从Excel文件导入数据
pd.read_sql(query, connection_object)
从SQL表/库导入数据
pd.read_json(json_string)
从JSON格式的字符串导入数据
pd.read_html(url)
解析URL、 字符串或者HTML文件, 抽取其中的tables表格
pd.read_clipboard()
从你的粘贴板获取内容, 并传给read_table()
下面咱们就将上面的这么多方法一个个演示一遍,文章中用的这些数据能够本身生成对应格式的就能够了,这个是不影响的,只要本身掌握了这些知识就好。
读取的时候,能够带行索引,用index_col=列
2)pd.read_table(filename)
查看DataFrame的信息http://df.info()
3) pd.read_excel(filename):从Excel文件中导入数据
4) pd.read_sql(query, connection_object):从SQL表/库导入数据
SQLAlchemy是python编程语言下的一款ORM框架,该框架创建在数据库API上,使用关系对象映射进行数据库操做,简言之即是:将对象转换成SQL
首先导入两个模块,链接数据库建议用sqlalchemy,使用pymysql可能会出问题
Sqlalchemy.create(‘mysql+pymysql://用户名:用户名密码@localhost:编号/数据库名称’)
不清楚用户名和编号的可使用mysql workbench查看
将文件写入到数据库中
Test是要在数据库中建立的表名,表示的意思是将df的数据传入到数据库lianxi下的表test中
5) pd.read_json(json_string)
6) pd.read_html(url)
首先要安装html5lib,pip install html5lib
7) pd.read_clipboard():从剪切板导入数据
首先复制一段文字
而后运行代码
二、写入文件
写入数据后,前往输入路径下查看文件
方式
做用
df.to_csv(filename)
导出数据到CSV文件
df.to_excel(filename)
导出数据到Excel文件
df.to_sql(table_name, connection_object)
导出数据到SQL表
df.to_json(filename)
以Json格式导出数据到文本文件
1)第一种方式:将行索引和列索引肉写入到文件
2)第二种方式:行索引不写入
3)第三种方式:行和列索引都不写入
三、DataFrame的属性
属性
说明
Values
值
Index
行索引
Columns
列索引
Index.name
行索引名字
Columns.name
列索引名字
其余属性:dtypes,shape等,能够用numpy数组等等大部分属性
四、DataFrame的函数和方法
4.一、取值和修改(索引,切片,ix,loc,iloc)
DataFrame的取值和修改应该从三个层次考虑:行列,区域,单元格。每一个层次都有其对应的方法:
行列df[],df.ix
区域df.ix[]
单元格df.ix
其中ix官方推荐使用iloc和loc代替
loc和iloc的用法和ix基本同样,只是loc参数用手动索引,iloc用自动索引,ix混用
取行:
取列:
五、其余函数或方法
5.1查看数据
5.二、清洗数据
df.dropna(axis=1,thresh=n): 删除全部小于n个非空值的列
5.三、数据规整
5.四、数据合并
5.五、数据统计