-
pandas概述
基于 numpy 的一种工具,为了解决数据分析任务而创建。 纳入了大量库和一些标准的数据模型,提供了高效的操作大型数据集所需要的模型。 提供能使我们快速便捷地处理数据的函数和方法。 常与numpy 和matplotlib一同使用。 有两大核心数据结构:Series(一维数据,键值对的形式)和DataFrame(多特征数据,既有行索引,又有列索引)
-
pandas库介绍
Series: 一维数组,与numpy中的一维array类似。 Series可以有更高效的使用内存,提高运算效率。 numpy 和series中只允许存储相同的数据类型。 Time-Series: 以时间为索引的Series。 DataFrame: 带标签且大小可变的二维表格型数据结构,可将DataFrame理解为Series的容器。 Panel: 三维的数组,可以理解为DataFrame的容器。
-
Series
Series是一种类似于一维数组的对象,它由一维数组(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。 创建函数: pandas.series(data,index,dtype,copy) 【data:数据采取各种形式,如:ndarray,list,constants(常量) index:索引值必须是唯一和散列的,与数据的长度相同,默认np.arange(n)如果没有索引被传递。 dtype:dtype用于数据类型。如果没有,将推断数据类型。 copy: 复制数据,默认为false】 Series的创建: 1.使用Python数组创建 2.使用numpy数组创建 3.使用Python字典创建 【与字典不同,Series允许索引重复。】 Series: 其字符串表现形式为:索引在左边,值在右边 如果没有为数据指定索引,则自动创建一个0到N-1(N为数据的长度)的整数索引 可以通过Series的Values和index属性获取其数组表示形式和索引对象 与普通numpy数组相比,可以通过索引的方式选取Series中的单一或一组值
#1.
import pandas as pd
import numpy as np
pd.Series([11,12],index=["北京","上海"])
北京 11
上海 12
dtype:int64
#2.
pd.Series(np.arrange(3,6))
0 3
1 4
2 5
dtype:int32
#3.
pd.Series({"北京":11,"上海":12,"深圳":14})
北京 11
上海 12
深圳 14
dtype:int64
-
DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等) 既有行索引也有列索引,它可以被看作由Series组成的字典(共用同一个索引) 跟其他类似的数据结构相比,(如R语言的data.frame), DataFrame中面向行和面向列的操作基本上是平衡的 DataFrame 中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构) 特点: 潜在的列是不同的类型 大小可变 标记轴(行和列) 可以对行和列执行算术运算 DataFrame构造函数: pandas.DataFrame(data,index,columns,dtype,copy) 【data: 数据采取各种形式,如:ndarray,series,map,lists,dict,constant和另一个DataFrame. index:对于行标签,要用于结果帧的索引是可选缺省值np.arrange(n),如果没有传递索引值。 columns:对于列标签,可选的默认语法是np.arrange(n),这只有在没有索引传递的情况下才是这样。 dtype: 每列的数据类型 copy: 如果默认值为False,则此命令用于复制数据】 创建: 1. 从单个列表创建: data=[1,2,3,4] df=pd.DataFrame(data) print(df) 2. 从嵌套列表创建,并 制定数据类型: data=[['Alex',10],['Bob',12],['Clarke',13]] df=pd.DataFrame(data,columns=['Name','Age'],dtype=flaot) print(df) 3. 由等长列表或numpy数组组成的字典创建DataFrame data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],'year':[2000,2001,2001,2001,2001],'pop',[1.5,1.7,3.6,2.4,2.9]} frame=pd.DataFrame(data) frame DataFrame结果会自动加上索引,(跟Series一样),且全部会被有序排列。 如果指定了列顺序,则DataFrame的列就会按照指定顺序进行排列; 跟原Series一样,如果传入的列在数据中找不到,就会产生NAN值。 通过类似四字典标记的方式或属性的方式,可以将DataFrame的列获取一个Series。 返回的Series拥有原DataFrame相同的索引,且其name属性也已经被相应的设置好了。 列可以通过赋值的方式进行修改。 将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度匹配。 如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有空位都会被填上缺失值。 为不存在的列赋值会创建出一个新列。 关键字del 用于删除列。 将嵌套字典传给DataFrame,它就会被解释为:外层字典的键作为列,内层键则作为行索引。 也可以对上述结果进行转置。【.T】 .index.name= .columns.name= 【可为行、列命名】 跟Series一样,values的属性也会以二维ndarray的形式返回DataFrame中的数据。 如果DataFrame各列的数据类型不同,则数组的数据类型就会选用能兼容所有列的数据类型。