资源简介 第四章 数据处理与应用 1、常用表格数据的处理 2、大数据处理 3、大数据典型应用 人生苦短 我用python 学习目标: 1、了解Python常用扩展模块的功能。 2、掌握pandas模块的调用方法、数据结构等基本知识。 3、能使用pandas模块对数据进行编辑、计算和统计分析,并能从中提取有用信息形成结论。 4、掌握matplotlib模块的调用方法和使用matplotlib模块对数据进行可视化的基本方法。 还记得吗? python模块的导入——import 一个程序中已出现的一个或多个函数或模块,引入到另一个python代码中,从而实现代码的复用。语法如下: import 模块名 模块名.函数名 from 模块名 import 函数名 python模块的小名儿 import 还有更多详细的用法,主要有以下两种:导入整个模块时,也可以为模块指定别名。 import 模块名1 [as 别名1]… 例如:import sys as s print(s.argv[0]) from 模块名 import 成员名1 [as 别名1],… 例如:from sys import argv as v print(v[0]) pandas处理数据 数据处理可以使用现成的软件或平台,也可以通过编写程序实现。Python语言丰富的标准模块和扩展库提供了许多高效灵活的函数,可以帮助我们较好地进行数据整理。 pandas数据结构 1. Series(序列) Series类似于一维数组,由一个数组的数据和一个与数据关联的索引(index),索引值默认是从0起递增的整数。 {5940675A-B579-460E-94D1-54222C63F5DA}from pandas import Series #导入pandas库中Series模块 pds1 = Series([1, 2, 3, 4]) pds1 0 1 1 2 2 3 3 4 左列:index 右列:values pandas数据结构 通过指定索引的方式 {5940675A-B579-460E-94D1-54222C63F5DA}pds2 = Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) pds2 a 1 b 2 c 3 d 4 pandas数据结构 通过字典方式创建 {5940675A-B579-460E-94D1-54222C63F5DA}data = {"i1":1,"i2":2,"i3":3,"i4":4} #由于字典是无序的,因此指定索引排列顺序 ps3 = Series(data,index=['i1','i2','i3','i4']) ps3 i1 1 i2 2 i3 3 i4 4 pandas数据结构 2. DataFrame(数据框) DataFrame是一种类似于关系表的表格型数据结构,DataFrame对象是一个二维表格,由1个索引列(index)和若干个数据列组成。其中,每列中的元素类型必须一致,而不同的列可以拥有不同的元素类型。 使用DataFrame前,需要导入pandas库中的DataFrame模块 from pandas import DataFrame pandas数据结构 {5940675A-B579-460E-94D1-54222C63F5DA}data = { "name":["王晓明","李静","田海"], "sex":["男","女","男"], "aged":[20,19,21]} #字典是无序的,因此需要通过columns指定列索引的排列顺序 df = DataFrame(data,columns=["name","sex","aged"]) df index pandas数据结构 DataFrame数据有列索引和行索引,行索引类似于关系表中每行的编号(未指定行索引的情况下,会使用0到N-1作为行索引),列索引类似于表格的列名(也称为字段)。 {5940675A-B579-460E-94D1-54222C63F5DA}df1 = DataFrame(data,columns = ["name","sex","aged"],index = ["L1","L2","L3"]) df1 {5940675A-B579-460E-94D1-54222C63F5DA}data = { "name":("张三","李四","王五","赵六"), "sex":("男","女","女","男"), "aged":(20,19,20,21), "score":(80,60,70,90)} df = DataFrame(data) #使用字典创建DataFrame对象 df pandas数据结构 pandas数据结构 DataFrame模块提供了丰富的函数,这些函数可以用来进行行、列编辑和统计计算等。 1.增加行 增加行数据可以通过append()函数传入字典数据即可。 append_data = { "name":"朱八","sex":"男","aged":23,"score":65} new_df = df.append(append_data) new_df pandas数据结构 2.增加列 增加列可以直接通过标签索引方式进行,当新增的列中的数值不一样时,可以传入列表或者数组结构进行赋值。 {5940675A-B579-460E-94D1-54222C63F5DA}new_df["city"] = ["北京","西安","长春","珠海","昆明"] new_df pandas数据结构 3. 删除 使用drop()函数可以删除指定轴上的信息,原来的DataFrame数据不会删除。 {5940675A-B579-460E-94D1-54222C63F5DA}new_df.drop(2) #删除行索引是2的信息 pandas数据结构 4.修改标签 通过rename()函数完成行和列索引标签的修改,index参数指定要修改的行标签,columns参数指定要修改的列标签。 {5940675A-B579-460E-94D1-54222C63F5DA}new_df.rename(index = {3:2,4:3},columns = {"score":"grade"}) #以字典形式指定修改信息 pandas数据结构 Matplotlib——绘图 Matplotlib —绘制精美的图表 Matplotlib——绘图 matplotlib中的快速绘图的函数库可以通过如下语句载入: 接下来调用figure创建一个绘图对象,并且使它成为当前的绘图对象。 通过figsize参数可以指定绘图对象的宽度和高度,单位为英寸;dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80。因此本例中所创建的图表窗口的宽度为8*80 = 640像素。 import matplotlib.pyplot as plt plt.figure(figsize=(8,4)) 快速绘图 接下来通过一系列函数设置绘图对象的各个属性: ? xlabel / ylabel : 设置X轴/Y轴的文字 ? title : 设置图表的标题 ? ylim : 设置Y轴的范围 ? legend : 显示图示 最后调用plt.show()显示出创建的所有绘图对象。 21 plt.xlabel("Time(s)") plt.ylabel("Volt") plt.title("PyPlot First Example") plt.ylim(-1.2,1.2) plt.legend() Matplotlib——绘图 快速绘图 22 import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 10, 1000) y = np.sin(x) z = np.cos(x**2) plt.figure(figsize=(8,4)) plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2) plt.plot(x,z,"b--",label="$cos(x^2)$") plt.xlabel("Time(s)") plt.ylabel("Volt") plt.title("PyPlot First Example") plt.ylim(-1.2,1.2) plt.legend() plt.show() Matplotlib——绘图 快速绘图 23 Matplotlib——绘图 课堂小结 import 模块名1 [as 别名1]… from 模块名 import 成员名1 [as 别名1],… pandas数据结构 Series(序列) DataFrame(数据框) Matplotlib——绘图 1. 下列Python的模块中,主要用于数据的处理和分析的是( ) A.Image B.pandas C.scipy D.matplotlib 课堂练习 B 课堂练习 2.有Python程序段如下: import pandas as pd ser = pd.Series([1,3,5,7]) print(ser.index) 该程序段运行后输出结果为( ) A 课堂练习 3. 某DataFrame对象df,其中包含18000数据行个和6个数据列,下列语句中能查看df对象中数据行的是( ) A.df.index B.df.columns C.df.head() D.df.count() C 课堂练习 4.(开放题)采集你感兴趣的数据,使用Python编程语言调用pandas模块处理数据、调用matplotlib模块绘图呈现数据,并描述分析结果。 每一种知识都需要努力, 都需要付出,感谢你们! 展开更多...... 收起↑ 资源预览