> 文章列表 > Python里Pandas基础知识

Python里Pandas基础知识

Python里Pandas基础知识

使用下面格式约定,引入pandas包:

import pandas as pd

• pandas有两个主要SeriesDataFrame

Series是带索引的一维数组;

DataFrame是表格,而不是单纯的二维数组,DataFrame有列名(列索引),有行索引;

一、Series

Series皆用类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据 标签(即索引)组成,即indexvalues两部分,可以通过索引的方式选取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 umnsi 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:/Uses/lun/Documents/教学/程序设计与数据分析python/数据集/stock.csv”) 

 

6.数据分析

stock.sum()#计算各列数据和

stock.count()#非NaN值的数量

  • .mean()/.median():计算数据的算术平均值、算术中位数
  • .var()/.std():计算的方差、标准差

-.corr()/.cov():计算相关系数矩阵、协方差矩阵,是通过参数对计算出来的。

  • .min()/.max():计算数据的最小值、最大值

-.diff():计算一阶差分,对时间序列很有效

-.mode():计算众数,返回澱(最高的那(几)个

  • .mean():计算均值
  • .quantileO计算分位数(01)

七胖网