•使用下面格式约定,引入pandas包:
import pandas as pd
• pandas有两个主要Series和DataFrame
Series是带索引的一维数组;
DataFrame是表格,而不是单纯的二维数组,DataFrame有列名(列索引),有行索引;
一、Series
Series皆用类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据 标签(即索引)组成,即index和values两部分,可以通过索引的方式选取Series中的单个或一组值。
pd.Series(list,index=[]),第二个参数是Series中数据的索引,可以省略。
1.Series创建
#1使用list创建Series
a=pd.Series ([12,15,89],i ndex=["chi nese","english","hi story"])
a
Chinese 12
english 15
history 89
dtype: int64
#2 使用ndarray创建Series;
arrl = np.arange(5)
s1= pd.series(arrl) #从 ndarray 创建
print(sl) #由于我们没有为数据指定索引,于是会自动创建一个。到N-l (N为数据的长度)的整数型索
引
0 0
1 1
2 2
3 3
4 4
#3使用字典创建Series
#字典的键将作为Series的索引
import pandas as pd
dict_data = {
"Beijing":1000,
"Shanghai":2000,
"Shenzhen":500
}#定义字典
datal = pd.Series(di ct_data)
2.Series类型索引、切片、运算的操作类似于ndarray,同样的类似Python字典类型的操作
二、DataFrame用法
是一个表格型的数据类型,每列值类型可以不同,同一列内 的元素类型也可以不同
.DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引),
. DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构).
1.DataFrame的创建
#1由等长列表或numpy数组组成的字典创建DataFrame
import pandas as pd
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year':[2000, 2001, 2002, 2001,2002,2003],
'pop':[1-5, 1.7, 3.6, 2.4, 2.9,3.2]}
df=pd.DataFrame(data)
#2.创建DataFrame时指定col umns和i ndex索引
#按照索引顺序排列,并且如果传入的列在数据中找不到,就会在结果中产生缺失值
df2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
index=['one','two','three', 'four', 'five','six'])
#3.使用嵌套字典创建DataFrame
#如果嵌套字典传给DataFrame, pandas就会被解释为外层字典的键作为列,内层字典键则作为行索引
pop = {'Nevada': {2001: 2.4, 2002: 2.9},'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
df3 = pd.DataFrame(pop)
2.DataFrame 操作
• df.values:将DataFrame转换为ndarray二维数组
df2.columns:获得列索引
添加列
df2['eastern‘] = df2.state == 'Ohio’
删除列
del df2['eastern']
检查数据
#df.loc[行标签,列标签]
df2.1oc[['three','four'],['year','state']]
#df.iloc[行位置, |
列位置]:通过默认生成的数字索引査询指定的数据,索引从0开始; |
df2.iloc[[2,3],[0,l,]] |
3.算术运算
除了用+-*/ 外,还可以用Series和DataFrame的算术方法,对齐时缺项填充NaN (空值)(#df2-df2 df2*df2 df2/df2均会报错。因为字符串不支持-*/,只支持+)
pd.Series(([1,2])+pd.Series([l,2,3])
4.排序
axis表示轴;对于2维表,有2个轴;默认轴axis=0,即横轴,也就是按某列排序;axis=1,就是按 行排序;ascending表示升序还是降序,默认升序;
df2.sort_values ('pop') #默认升序;
df2.sort_values('pop', ascending=False)#降序,默认axis=0, pop就是0轴(横轴)
df3.sort_values ('two',axis=1,ascending=True) #纵轴,第"two”行,升序
5.读取文本文件
stock=pd. read_csv("C:/Use「s/lun/Documents/教学/程序设计与数据分析python/数据集/stock.csv”) |
|
|
6.数据分析
stock.sum()#计算各列数据和
stock.count()#非NaN值的数量
-.corr()/.cov():计算相关系数矩阵、协方差矩阵,是通过参数对计算出来的。
-.diff():计算一阶差分,对时间序列很有效
-.mode():计算众数,返回澱(最高的那(几)个