大数据审计(基于Python) 课件 第四章 数据预处理:清洗表格数据_第1页
大数据审计(基于Python) 课件 第四章 数据预处理:清洗表格数据_第2页
大数据审计(基于Python) 课件 第四章 数据预处理:清洗表格数据_第3页
大数据审计(基于Python) 课件 第四章 数据预处理:清洗表格数据_第4页
大数据审计(基于Python) 课件 第四章 数据预处理:清洗表格数据_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章数据预处理:清洗表格数据1(数据背景2(数据清洗目录数据背景1数据背景在财务流程自动化的过程中,对原始数据的清洗是首要工作。业务流程中,数据一般从系统到人工,人工处理后再返回系统。原始数据一部分来自于业务人员手工制作的Excel,一部分来源于系统。手工制作的数据很难保证完全符合系统规范,一些缺漏、不规范输入、不统一的格式等都会导致脏数据的产生。从系统导出的数据一般较为全量,有很多冗余数据,为了获取到需要的数据,也需要一定的处理。数据清洗2内容替换df.replace()函数用于对DataFrame的值进行全局替换,比如空值、某个统一错误的数据。df[col_name].replace()可对DataFrame的指定列的数据进行替换操作。replace()函数的参数有两种写法,一种是replace(to_replace,value),一种是replace({to_replace:value})。参数值使用了正则表达式的时候,后面要加参数regex=True,否则正则表达式不起效。df.replace(to_replace,value)df.replace({to_replace:value})df[col_name].replace(to_replace,value)df[col_name].replace({to_replace:value})内容替换#读取名为“test_data”的Excel的名为“Sheet1”的sheet页的可用数据行,把其中的空值替换为空字符串(体现在amount(lcy)列),把以大写字母“I”开头的单词替换为“iii”(体现在lessee_region列)。内容替换df[col_name].str.replace(to_replace,value)函数可以对DataFrame值的具体内容进行替换操作。此函数多用于去除值内部的前后空白字符,或者统一数据的记录格式,去除无效字符。df[].str.replace()函数必须写明操作的对象列,参数与参数之间也只能用逗号隔开,否则报错。内容替换#读取名为“test_data”的Excel的名为“Sheet1”的sheet页的可用数据行,把company_no列的大写字母“S”替换为小写字母“s”,把payment_details列的字符串“payment_details”替换为字符串“PaymentDetails”。内容替换把字母都转为小写:df[].str.lower();把字母都转为大写:df[].str.upper();把单词首字母转为大写:df[].str.title();首尾去除固定字符:df[].str.strip(to_strip);……df[col_name].str下的方法都是对DataFrame的值的具体内容进行操作,和python中对字符串的操作类似,用法诸多,可自行探索。数据类型转换df.dtypes可用于查看DataFrame各列的数据类型。常见的类型有object、int64、float64、datetime64。数据类型转换df.astype('数据类型')函数用于重新定义DataFrame的数据类型,可以对指定列进行操作,也可以对整个DataFrame进行操作。类型转换需符合通用规范,否则会报错。一般会把object类型重新定义为string类型,序号定义为int64类型,金额定义为float类型,日期定义为datatime64类型,如果日期原格式统一且需要保留为原格式,可以定义为string类型。数据类型转换对整个DataFrame进行操作对指定列进行操作数据类型转换日期在财务数据中是个很重要的存在,但是日期格式多种多样,常用的日期格式是年月日,所以通常要对非年月日格式的日期进行处理。在前面展示的例子中,虽然日期的显示值为“日-英文月份简称-年”的格式,但其实际格式为年月日(如图1所示),所以在读取时没有任何问题,类型也会被自动判定为日期类型。如果在Excel中日期单元格被设为文本类型,显示值即实际值(如图2所示),就需要把数据处理为统一的日期类型,方便后续操作。图1显示值与实际值不同图2显示值与实际值相同数据类型转换time.strptime(string,format)函数用于解析时间日期字符串,第一个参数是需要转换的时间日期字符串,第二个参数是该字符串的时间日期格式。time.strftime(format)函数用于格式化时间日期,参数是需要得到的结果的格式。常见的时间日期格式化符号有:%y两位数的年份(00-99);%Y四位数的年份(000-9999);%m月份(01-12);%d月内中的一天(0-31);%H24小时制小时数(0-23);%M分钟数(00-59);%S秒;%b简化的月份名称;%a简化的星期名称。右键点击图片选择设置图片格式可直接替换图片。您的容打在这里,或者通这里,或者通过复制过复制您的文本数据类型转换数据类型转换删除无效数据1.删除任意行df.drop([])2.删除包含指定值的行df=df[~df['bank_account_no'].isin(['指定值1','指定值2',……])]3.删除重复行df=df.drop_duplicates()4.删除不需要的列df=df.drop(columns=['del_col_name_1','del_col_name_2',……])删除任意行在使用read_excel()函数读取Excel文件时,就可以通过定义参数跳过前面几行或者最后几行,但当需要跳过的行不在头尾连续的时候,就不能直接在read_excel()函数通过定义参数实现。可以通过df.drop()函数达到删除任意一行的目的,值得注意的是,df.drop()函数操作的是DataFrame的数据行,在使用read_excel()函数读取Excel文件时,标题行就已经确定,df.drop()函数无法操作标题行。df.drop()函数的参数只能是行的下标索引值(从0开始),不支持-1这种索引。如果要去除末尾行,参数应写为[len(df)-1]。删除任意行删除任意行删除任意行删除包含指定值的行删除包含指定值的行的操作时,首先使用isin()函数筛选出包含指定值的行,然后取反,筛选出不包含指定值的行,达到删除包含指定值的行的目的。删除不需要的列数据创造1.利用现有DataFrame生成一个新的DataFrame#定义一个新的DataFramenew_df1=pd.DataFrame(columns=['new_col_1','new_col_2',……])#新的DataFrame的列直接取自现有DataFrame的列new_df1['new_col_1']=df['col_1']new_df1['new_col_2']=df['col_2']……#对现有DataFrame进行切分new_df2=df.loc[:,'col_head':'col_tail']数据创造数据创造数据创造2.利用函数和方法创造DataFrame的新列使用df.insert(loc,col_name,value)函数为现有DataFrame增加新列。第一参数是插入的位置,参数值必须是0到len(columns)之间的数;第二个参数是新列的列名;第三个参数是该列的值,如果是固定值那么该列的所有行都会被赋此固定值。数据创造数据创造数据创造3.DataFrame的合并与拼接使用前面生成的new_df1和new_df2,通过join方法生成new_df3。右键点击图片选择设置图片格式可直接替换图片。您的容打在这里,或者通这里,或者通过复制过复制您的文本DataFrame转换DataFrame.to_dict()函数可以把DataFrame转化为字典类型。函数中只需要填写一个参数即可,但对于写入参数值的不同,字典的构造方式也不同。官方网站中一共给出了6种参数值:'dict',函数默认参数,转化后的字典形式:{column:{index:value)}};'list',转化后的字典形式:{column:{[values]}};'series',转化后的字典形式:{column:Series(values)};'split',转化后的字典形式:{'index':[index],'columns':[columns],'data':[values]};'records',转化后是list形式:[{column:value}…{column:value}];'i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论