当前位置: 首页 > 科技观察

五个简单有效的数据清洗Python脚本

时间:2023-03-14 09:18:45 科技观察

将PDF转CSV在机器学习中,我们应该少一些“数据清洗”,多一些“数据准备”。当我们需要从白皮书、电子书或其他PDF文档中抓取数据时,这个脚本为我节省了大量时间。importtabula#获取文件pdf_filename=input("Enterthefullpathandfilename:")#提取PDF的内容frame=tabula.read_pdf(pdf_filename,encoding='utf-8',pages='all')#根据内容CSV文件创建frame.to_csv('pdf_conversion.csv')这是一种比较简单的快速提取数据的方法,可以导入到机器学习数据库、Tableau或Count等工具中。合并CSV文件许多系统提供导出为CSV的选项,但无法在导出之前先合并数据。这可能会导致将5个以上的文件导出到包含相同数据类型的文件夹中。这个Python脚本通过获取这些文件并将它们合并到一个文件中来解决这个问题。fromtimeimportstrftimeimportpandasaspdimportglob#定义包含CSV文件的文件夹的路径path=input('请输入完整的文件夹路径:')#确保有尾部斜杠ifpath[:-1]!="/":path=path+"/"#获取CSV文件列表csv_files=glob.glob(path+'*.csv')#打开每个CSV文件并合并成一个文件merged_file=pd.concat([pd.read_csv(c)forcincsv_files])#创建一个新文件merged_file.to_csv(path+'merged_{}.csv'.format(strftime("%m-%d-%yT%H:%M:%S")),index=False)print('Mergecomplete.')最终输出将为您提供一个CSV文件,其中包含您从源系统导出的CSV列表中的所有数据。从CSV文件中删除重复行如果您需要从CSV文件中删除重复的数据行,这可以帮助您执行快速清理操作。当ML数据集中有重复数据时,这会直接影响可视化工具或ML项目的结果。importpandasaspd#获取文件名filename=input('filename:')#定义CSV列名检查是否重复duplicate_header=input('headername:')#获取文件内容file_contents=pd.read_csv(filename)#删除重复行deduplicated_data=file_contents.drop_duplicates(subset=[duplicate_header],keep="last",inplace=True)#创建一个新文件deduplicated_data.to_csv('deduplicated_data.csv')splitCSVcolumnswhenexportingfrom其他系统文件,它有时包含一列数据,我们需要它作为两列。importpandasaspd#获取文件名并定义列filename=input('filename:')col_to_split=input('columnname:')col_name_one=input('firstnewcolumn:')col_name_two=input('secondnewcolumn:')#AddCSVdatatodataframedf=pd.read_csv(filename)#Splitcolumndf[[col_name_one,col_name_two]]=df[col_to_split].str.split(",",expand=True)#新建csv文件df.to_csv('split_data.csv')合并不同的数据集假设您有一个账户列表和与之关联的订单,并且想要查看订单历史记录以及关联的账户详细信息。执行此操作的一个好方法是将数据合并到一个CSV文件中。importpandasaspd#获取文件名并定义用户输入')join_column_name=input('columnname(i.e.Account_ID):')#读取文件到dataframesdf_left=pd.read_csv(left_filename)df_right=pd.read_csv(right_filename)#Joindataframesjoined_data=pd.merge(left=df_left,right=df_right,how=join_type,on=join_column_name)#新建一个csv文件joined_data.to_csv('joined_data.csv')最后这些脚本可以有效的帮助我们自动清理数据,然后将清理后的数据加载到机器学习中Pandas是处理数据的首选库,因为它提供了许多选项。