Python-数据分析工具2-pandas

目录

1 pandas数据结构

(0)Series

(1)DataFrame

2 pandas索引操作

(0)设置索引

(1)更换索引

(2)索引和选取(切片仅用于选取行)

1.Series对象选取数据元素

2.DataFrame对象选取数据元素

(3)操作行和列(基本操作就是“增、删、改、查”)

1.增加

2.删除

3.修改

3 pandas数据运算

(0)算术运算

(1)自定义函数应用和映射

(2)排序

(3)汇总与统计

(4)唯一值与值统计

(5)DataFrame的分组数据聚合

(6)DataFrame的串联与附加操作

(7)DataFrames的表连接连接

(8)处理缺失值

(9)处理日期数据

(10)数据透视表

4 层次化索引

5 pandas可视化图表

6 综合练习—小费数据集


1 pandas数据结构

(0)Series

类似一维数组,但它由一组数据(Numpy数据类型)和一组对应的索引组成(索引默认为从0开始的序号)

1.通过字典创建Series对象

2.指定索引并通过索引取值

Python-数据分析工具2-pandas_第1张图片Python-数据分析工具2-pandas_第2张图片

3.给Series对象和索引指定name属性

Python-数据分析工具2-pandas_第3张图片Python-数据分析工具2-pandas_第4张图片

(1)DataFrame

由于DataFrame是表格型数据,因此无论是创建的数据还是外部数据,首先想到的应该是如何将数据转换为DataFrame对象。

1.通过字典创建DataFrame对象

2.通过columns属性指定DataFrame列索引的排列顺序

Python-数据分析工具2-pandas_第5张图片

3.通过嵌套字典创建DataFrame

Python-数据分析工具2-pandas_第6张图片

4.通过二维列表或二维Numpy矩阵创建DataFrame

Python-数据分析工具2-pandas_第7张图片

5.通过Series创建DataFrame

将Series合并为字典。在字典中,每个Series对象都被当作列。

将Series合并为列表。在列表中,每个Series对象都被当作行。

Python-数据分析工具2-pandas_第8张图片Python-数据分析工具2-pandas_第9张图片

2 pandas索引操作

 Series的索引和DataFrame的行和列索引都是索引对象,负责管理轴标签和元数据。

(0)设置索引

1.Series设置索引------obj.reindex(新排序索引列表)

2.DataFrame设置索引------df.reindex(list)【设置行索引】------df.reindex(columns=list)【设置列索引】

reindex参数类型

说明

index

用于索引新序列

method

设置填充值方法,ffill,bfill, nearest(必须是数值索引)

fill_value

设置填充值

limit

最大填充个数(可以不填满)

Python-数据分析工具2-pandas_第10张图片

(1)更换索引

1.列数据作为行索引------df.set_index(‘某列索引’)

2.重置索引-------df.reset_index()

3.排序后重置索引,显示位序

Python-数据分析工具2-pandas_第11张图片Python-数据分析工具2-pandas_第12张图片

(2)索引和选取(切片仅用于选取行)

1.Series对象选取数据元素

(1)下标、索引标签------obj[1]------obj[ ['a','c'] ]

(2)下标切片不包含尾端、索引标签切片包含尾端------obj[0:2]------obj['a':'c']

2.DataFrame对象选取数据元素

(1)选取列------(标签单列)df.['city']------(标签多列)df.[ ['city',''name'] ]------(属性单列)df.name

(2)选取行-------df.loc[行索引标签]-------df.iloc[行索引位置]

(3)同时选取行和列

1.使用ix同时选取行和列的子集。ix同时支持索引标签和索引位置。

选取行和列在子集。语法:ix[行索引序列, 列索引序列]          

选取行或者列。语法:选取行 ix[行索引序列, :],选取列ix[:, 列索引序列]

Python-数据分析工具2-pandas_第13张图片

2.使用loc[行索引标签序列, 列索引标签序列];选取行或者列

语法:选取行 loc[行索引标签序列, :],选取列ix[:, 列索引序标签列]

3.使用iloc[行索引位置序列,列索引位置序列];选取行或列

语法: iloc[行索引位置序列,:], iloc[:,列索引位置序列]

Python-数据分析工具2-pandas_第14张图片Python-数据分析工具2-pandas_第15张图片

(4)布尔选择

布尔条件运算:非~,与&,或|。 逻辑关系运算:==,!=,>,>=,<,<=。

Python-数据分析工具2-pandas_第16张图片Python-数据分析工具2-pandas_第17张图片

(3)操作行和列(基本操作就是“增、删、改、查”)

1.增加

(1)增加行

DataFrame对象:df.append(new_data, ignore_index=True) 或df.append(Series对象)

Series对象:s[‘新索引’]=value。

(2)增加列

添加一列相同的值。语法: df[new_col]=value------表示这列都是相同值

添加一列数组。语法: df[new_col]=['列表']

2.删除

df.drop( 索引, axis)------行(axis=0)、列(axis=1)

3.修改

修改行或列索引标签------df.rename(index={r_ori1:r_new1, r_ori2:r_new2,…}

修改元素值(先通过ix,loc,或者iloc选择元素然后赋值)

(1)赋予相同元素值;(2)赋予相同行;(3)赋予相同维度矩阵。

Python-数据分析工具2-pandas_第18张图片

3 pandas数据运算

(0)算术运算

Series算术运算

DataFrame算术运算

(1)自定义函数应用和映射

map方法将函数应用于Series对象的每个元素上。

Python-数据分析工具2-pandas_第19张图片

apply方法将函数应用于DataFrame对象的行或列上。

Python-数据分析工具2-pandas_第20张图片

applymap方法应用于DataFrame对象的每个元素上。

Python-数据分析工具2-pandas_第21张图片

(2)排序

Series对象

obj.sort_index(ascending)

DataFrame对象

obj.sort_index(axis,by, ascending)

(3)汇总与统计

通过sum函数对每列或每行求和汇总

(4)唯一值与值统计

Series通过unique()接口方法计算唯一值。语法:obj.unique()

Series通过value_counts()接口方法计算值统计。语法:obj.value_counts()

DataFrame的行和列都是Series对象,可以计算每行每列的唯一值与值统计。

(5)DataFrame的分组数据聚合

使用聚合可以将各行或各列数据进行分组,进而可以实现每组数据上的不同操作

(6)DataFrame的串联与附加操作

DataFrame串联。语法:pd.concat([df1, df2])。要求df1与df2必须有相同列类型。

DataFrame附加。语法:df1.append(df2)。要求df1与df2必须有相同列类型。

(7)DataFrames的表连接连接

使用merge进行内部连接,使用how比on更直观

使用merge进行外连。不存在的值补NaN。

(8)处理缺失值

检查缺失值。使用pandas的isnull() 检查缺失值

通过fillna()方法用一个标量值(如0)替换缺失值

(9)处理日期数据

pd.to_datetime((['19021112','19031230'],format='%Y%m%d'))

日期字符串转换成日期数据。当字符串无法转换时报错

(10)数据透视表

pd.pivot_table(df , columns=[''], aggfunc=np.fun)

设置aggfunc参数,可以让这个聚合函数执行Numpy中诸如sum()之类的函数。

设置参数columns用来告诉Pandas要对哪些列进行聚合。

4 层次化索引

5 pandas可视化图表

6 综合练习—小费数据集

你可能感兴趣的:(#,Python数据分析)