《《数据采集与预处理》教学教案—10用Pandas进行数据预处理.docx》由会员分享,可在线阅读,更多相关《《数据采集与预处理》教学教案—10用Pandas进行数据预处理.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据采集与预处理NO. 10教师姓名授课班级授课形式理实一体化授课时间年 月 日第周授课时数4授课章节名称任务3用Pandas进行数据预处理教学目的(1)熟悉Pandas的相关基础知识。(2)学会使用Pandas完成“北京公交线路信息” 数据的预处理。教材分析教学重点使用Pandas完成“北京公交线路信息” 数据的预处理教学难点使用Pandas完成 “北京公交线路信息” 数据的预处理更新、 补充、删节内容课外作业积极动手实践, 熟练完成相关任务的实施操作教学提示教学过程一、知识准备:无论是对于数据分析还是数据挖掘而言,Pandas都是一个非常重要的 Python包。它不仅提供了很多方法,使数据
2、处理非常简单,还在数据处理 速度上做了很多优化,使得其和Python内置方法相比有很大的优势。1 .导入数据pd.read_csv(filename):从 CSV 文件中导入数据。pd.read_table(filename):从限定分隔符的文本文件中导入数据。pd.read_excel(filename):从 Excel 文件中导入数据。pd.read_sql(query, connection_object):从 SQL 表/库中导入数据。 pd.read_json(json_string):从JSON格式的字符串中导入数据。pd.read_html(url):解析URL、字符串或HTML
3、文件,抽取其中的tables。 pd.read_clipboard():从粘贴板中获取内容,并传送给read_table()o pd.DataFrame(dict):从字典对象中导入数据,Key表示列名,Value 表示数据。2 .导出数据df.to_csv(filename):导出数据到CSV文件中。df.to_excel(filename):导出数据到 Excel 文件中。df.to_sql(table_name, connection_object):导出数据到 SQL 表中。df.tojson(filename):以JSON格式导出数据到文本文件中。3 .创建测试对象pd.DataFr
4、ame(np.random.rand(20,5):创建 20 行 5 列的、由随机数组 成的DataFrame对象。pd.Series(myist):从可迭代对象 my_list中创建一个Series对象。df.index = pd.date_range(1900/1/30; periods = df.shape0):增加一个日 期索引。4 .查看、检查数据df.head(n):查看DataFrame对象的前n彳亍。df.tail(n):查看DataFrame对象的最后n行。df.shape():查看行数和列数。http:/df.info():查看索引、数据类型和内存信息。df.describ
5、e():查看数值型列的汇总统计。5 .value_counts(dropna=False):查看 Series 对象的唯一值和计数。df.apply(pd.Series.value_counts):查看 DataFrame 对象中每一列的唯 一值和计数。6 .数据选取dfcol:根据列名,以Series的形式返回列。dfcoll, col2:以 DataFrame 的形式返回多列。7 .iloc0:按位重选取数据。8 .loc,index_one,:按索引选取数据。df.iloc0,:返回第一行。df.iloc0,0:返回第一列的第一个元素。6 .数据清理df.columns =:重命名列名。
6、pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组。pd.notnull():检查 DataFrame对象中的非空值,并返回一个 Boolean 数组。df.dropna():删除所有包含空值的行。df.dropna(axis=l):删除所有包含空值的列。df.dropna(axis= 1 ,thresh=n):保留至少有n个非空值的行。df.fillna(x):用x替换DataFrame对象中的所有空值。s.astype(float):将Series中的数据类型更改为float类型。s.repIaceCl/one1):用one代替所有等于1的值。s.re
7、place(l,3J,oneVthree,):用one代替 1,用three代替 3。df.rename(columns=lambda x: x + 1):批量更改列名。df.rename(columns= old_name: ,new_name,):选择性更改列名 df.set_index(!column_one!):更改索引列。df.rename(index=lambda x: x + 1):批量重命名索引。7 .数据处理dfdfcol 0.5:选择col列的值大于0.5的行。df.sort_values(coll):按照coll列排序数据,默认升序排列。df.sort_values(co
8、ll, ascending=False):按照 coll 列降序排列数据。df.sort_values(col 1 ,col2, ascending=True,False):先按 coll 列升序排 列数据,再按co!2列降序排列数据。df.groupby(col):返回一个按col列进行分组的 GroupBy对象。df.groupby(coll,col2):返回一个按多列进行分组的GroupBy对象。df.groupby(coll)col2:返回按coll列进行分组后,col2列的均值。df.pivot_table(index=col 1, values=col2,col3, aggfunc
9、二max): 创建一个 按coll列进行分组,并计算col2和co!3的最大值的数据透视表。df.groupby(col 1 ).agg(np.mean):返回按coll列分组的所有列的均值。 data.apply(np.mean):对 DataFrame 中的每一列应用 函数 np.meano data.apply(np.max,axis=l):对 DataFrame 中的每一行应用函数 np.maxo 8.数据合并dfl.append(df2):将df2中的行添加到dfl的尾部。df.concat(dfl, df2,axis=l):将 df2 中的列添加到 dfl 的尾部。dfLjoin(
10、df2,on=coll,how=inner):对 dfl 列和 df2 列执行 SQL形式的连 接。9 .数据统计df.describe():查看数据值列的汇总统计。df.mean():返回所有列的均值。df.corr():返回列与列之间的相关系数。df.count():返回每一列 中的非空值的个数。df.max():返回每一列的最大值。df.min():返回每一列的最小值。df.median():返回每一列的 中位数。df.std():返回每一列的标准差。二、任务实施:1.创建数据文件创建pandas_info.py文件,并将其导入Pandas库2,读取数据文件图4-6所示为使用Pandas
11、的read_csv()方法读取CSV格式的文件,其 中,delimiter参数指定了数据文件的分隔符,encoding参数指定了数据文 件的编码,names参数指定了数据的列索引。bus.info = pd. read_csv (* bus_info. csv , delimiter5* , *, encoding3, gbk , names=* 路线名称,路线类型,运行时间,票价信息, 所属公司,更新时间,总里程,在线名称,往线站台详细信息,返线名称,返线站台详细信息)图4-6读取数据文件3 .对数据进行去重及去空处理如图4-7所示,Pandas的drop_duplicates()方法用于去
12、除数据中的重复 项,reset_index()方法用于还原索引为默认的整型索引(使用此方法的原 因是,前面的去重或去空会清洗掉一些数据,但数据的索引仍然被保留着, 导致那一行数据为空,会影响清洗操作),drop。方法用于删除数据中名为 index的一列 (axis=l为列,默认为行),dropna()方法用于去除数据中含 有任意空数据的一行数据。bus_info2 = bus_info. drop_duplicates 0. reset_mdex(). drop ( index , axis=l) bus info2 = bus info2. dropna 0. reset index 0. drop( index* ,axis=l)图4-7对数据进行去重及去空处理4 .分割、替换数据文件由于“总里程”列的数据表述格式不清晰,因此对其做分割、替换操作。5 .保存清洗后的数据