pandas简介
pandas是一款开源代码的bsd许可的python库,为python编程语言提供了高性能,易于使用的数据结构和数据分析工具。广泛的领域,包括金融,经济,分析等学术和商业领域
pandas是numpy的一种工具,该工具是为了解决数据分析任务而创建
pandas纳入大量库和一些数据模型,提供了高效的大型数据集所需的工具
优点
快速高效的dataframe对象,具有默认和自定义的索引
将数据从不同文件格式加载到内容中的数据对象的工具
丢失数据的数据对齐和综合处理
集成时间序列功能
基于标签的切片,索引和大数据集的子集
可以删除或插入来自数据结构的列
按数据分组进行聚合和转换
高性能合并和数据加入
合并及其他出现在常见的数据库(例如sql)中的关系型预算
数据类型分类
系列(series)
数据帧(dataframe):被广泛使用,是最重要的数据机构之一
面板(panel):很少使用
维度和描述:
系列:
数据帧:
面板
2.系列(series)
能够保持任何类型的数据(整数,浮点数,python对象等)一堆标记数组,轴标签统称为索引。原型: pandas.Series(data=None,index=None,dtype=NONE,copy=False)
从ndarray创建一个系列创建一个系列
import pandas as pd
import pandas as np
x=np.array([1,2,3,4,5])
s=pd.Series(x)
print(s)
输出:
0 1 1 2 2 3 3 4 4 5 dtype: Int64
可以指定index
x=np.array([1,2,3,4,5])
s=pd.Series(x,index=[10,20,30,40,50])#可以指定索引
print(s)
输出:
10 1
20 2
30 3
40 4
50 5
dtype: Int64
从字典创建一个系列
字典(dict)可以作为输入传递,如果没有指定索引,则按照排序取得字典键以构造索引。如果传递了索引,索引中与标签对应的数据中的值将被拉出
d={'a':1,'b':2,'c':3}
s=pd.Series(d,index=['b','c','a','d'])
print(s)
输出:
b 2.0 c 3.0 a 1.0 d NaN dtype: float64
从一个标量创建一个系列
如果数据是标量值,则必须提供索引,则该值以匹配索引的长度
s=pd.Series(5,index=[0,1,2,3,4,6,7,8])
print(s)
输出:
0 5 1 5 2 5 3 5 4 5 6 5 7 5 8 5 dtype: int64
访问数据
从具有位置的系列中访问数据
系列中的数据可以使用类似于访问ndarray中的数据来访问
检索第一个元素,比如已经知道数组从零开始计数,第一个元素储存在零位置等等
import pandas as pd
s=pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])
print(s[0])
输出:
1
检索系列中的前三个元素。如果a:被插入到其前面,则将该索引向前的所有项目被提取。如果使用两个参数(使用它们之间),两个索引之间的所有项目(不包括停止索引)
注意:如果要取得索引是数字下标,遵循左开右闭。如果下标是字母的,那就全拿
import pandas as pd
s=pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])
print(s['a':'d'])
输出:
a 1 b 2 c 3 d 4 dtype: int64
系列基本功能:
import pandas as pd
import numpy as np
s=pd.Series(np.random.randn(5))
s
输出:
0 1.095222 1 -0.408732 2 -1.210231 3 1.842531 4 -0.935634 dtype: float64
s.axes
[RangeIndex(start=0, stop=5, step=1)]
s.dtype
dtype('float64')
s.ndim
1
s.size
5
s.values
array([ 1.09522225, -0.40873156, -1.21023125, 1.84253128, -0.93563425])
type(s.values)
numpy.ndarray
s.head(3)#获取前3个索引的值
0 1.095222 1 -0.408732 2 -1.210231 dtype: float64
s.tail(2)#获取后两个索引的 值
3 1.842531 4 -0.935634 dtype: float64
s=pd.Series(['tom','william','jhon','albert',np.nan,'1234','jjj'])
print(s)
print('\n')
0 3.0 1 7.0 2 4.0 3 6.0 4 NaN 5 4.0 6 3.0 dtype: float64
s.str.lower()
0 tom 1 william 2 jhon 3 albert 4 NaN 5 1234 6 jjj dtype: object
s.str.upper()
0 TOM 1 WILLIAM 2 JHON 3 ALBERT 4 NaN 5 1234 6 JJJ dtype: object
s=pd.Series(['tom ','william','jh on','albert ',np.nan,'1234','jjj'])
print(s)
print('\n')
0 to