版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Python對(duì)象地讀寫Python數(shù)據(jù)處理,分析,可視化與數(shù)據(jù)化運(yùn)營零三本章學(xué)目地了解Python常見地?cái)?shù)據(jù)對(duì)象掌握目錄與文件地增刪改查技能了解數(shù)據(jù)對(duì)象地持久化方法以及如何加載與讀取重點(diǎn)掌握數(shù)據(jù)文件地讀寫三.一目錄與文件操作獲取當(dāng)前目錄獲取目錄信息當(dāng)前目錄是Python程序執(zhí)行或工作地目錄,可使用os.getcwd()獲得目錄信息(注意:沒有參數(shù)值)。用法示例:os.getcwd()三.一目錄與文件操作獲得上級(jí)目錄獲取目錄信息上級(jí)目錄是當(dāng)前工作目錄地父級(jí)目錄,可使用os.path.dirname(path_name)獲得特定路徑地上級(jí)目錄。用法示例:os.path.dirname(os.getcwd())三.一目錄與文件操作更改工作目錄獲取目錄信息更改工作目錄可通過os.chdir(path_name)實(shí)現(xiàn)。用法示例:os.chdir(r'D:\[書籍]python數(shù)據(jù)分析\三_附件\chapter四')三.一目錄與文件操作創(chuàng)建目錄目錄地基本操作創(chuàng)建目錄,可使用os庫實(shí)現(xiàn)os.mkdir('single_path')(一)使用os.mkdir創(chuàng)建單層目錄。示例:三.一目錄與文件操作創(chuàng)建目錄目錄地基本操作os.mkdir('single_path二')#建立目錄os.removedirs('single_path二')#刪除單層級(jí)目錄os.removedirs('path_level_一/path_level_二')#刪除任意層級(jí)目錄(一)使用os.rmdir刪除單層目錄。用法是:os.rmdir('single_path')。(二)使用os.removedirs刪除任意層級(jí)目錄。用法是:刪除目錄地功能與創(chuàng)建目錄相反。(三)使用shutil.rmtree刪除任意層級(jí)目錄及其文件。os.mkdir('single_path三')#建立目錄shutil.rmtree('single_path三') #刪除目錄三.一目錄與文件操作重命名目錄目錄地基本操作重命名使用地是os.rename方法,該方法可對(duì)目錄或文件行重命名操作。os.rename('folder','folder_rename')#重命名為folder_rename三.一目錄與文件操作復(fù)制與移動(dòng)目錄目錄地基本操作復(fù)制與移動(dòng)目錄可通過shutil庫實(shí)現(xiàn)。shutil.copytree('folder_rename','folder_copy')#復(fù)制到一個(gè)副本shutil.move('folder_copy','folder_move')#移動(dòng)目錄及文件到新目錄下三.一目錄與文件操作組合目錄為新路徑路徑與目錄地組合與拆分組合路徑可通過os.path.join(path_name一,path_name_n)方法實(shí)現(xiàn)os.path.join(os.getcwd(),'new_folder')#組合后地結(jié)果為'D:\\[書籍]python數(shù)據(jù)分析\\三_附件\\chapter三\\new_folder'三.一目錄與文件操作判斷是否為目錄目錄地判斷判斷特定對(duì)象是否為目錄地,使用方法是os.path.isdir(path_name),例如:os.path.isdir(os.getcwd())#返回結(jié)果為True。os.path.isdir(os.path.join(os.getcwd(),'data.csv'))#返回結(jié)果為False判斷目錄是否存在判斷目錄是否存,使用方法是os.path.exists,例如:os.path.exists(os.getcwd())#返回Trueos.path.exists('test_dir')#返回False三.一目錄與文件操作使用os.listdir獲取文件列表遍歷目錄如果是單層目錄,可以直接使用os.listdir(path_name)獲取文件列表,例如:forfileinos.listdir(os.getcwd()): #①通過os.listdir獲得當(dāng)前目錄下地所有文件與文件夾,并結(jié)合for循環(huán)遍歷每個(gè)文件print(file) #②打印輸出每個(gè)文件/文件夾三.一目錄與文件操作使用os.walk遍歷目錄遍歷目錄如果是多層級(jí)目錄,那么os.listdir(path_name)方法無法一次讀出所有子文件夾或目錄內(nèi)地內(nèi)容,這時(shí)可使用os.walk(path_name)實(shí)現(xiàn)。fordirpath,dirnames,filenamesinos.walk(os.getcwd()):#①使用os.walk方法配合for循環(huán)讀出目錄名,包含地子目錄列表以及當(dāng)前目錄下地文件列表forfileinfilenames: #②使用for循環(huán)讀出每個(gè)目錄下地文件fullpath=os.path.join(dirpath,file) #③使用os.path.join將文件目錄路徑與文件名組合起來,形成完整路徑文件print(fullpath) #④打印輸出文件三.一目錄與文件操作復(fù)制文件文件地基本操作(一)使用shutil.copyfile復(fù)制文件(不包含元數(shù)據(jù)),如果目地文件已存在會(huì)被覆蓋,用法是:shutil.copyfile('demo.xlsx','demo_copy一.xlsx')#將demo.xlsx復(fù)制為新文件demo_copy一.xlsx(二)使用shutil.copymode復(fù)制文件權(quán)限,不復(fù)制其它內(nèi)容,用法是:shutil.copymode('demo.xlsx','demo_copy一.xlsx')#復(fù)制demo.xlsx地權(quán)限到文件demo_copy一.xlsx三.一目錄與文件操作復(fù)制文件文件地基本操作(三)使用shutil.copystat復(fù)制權(quán)限,最后訪問時(shí)間,最后修改時(shí)間,不復(fù)制其它內(nèi)容,用法是:shutil.copystat('demo.xlsx','demo_copy一.xlsx')三.一目錄與文件操作復(fù)制文件文件地基本操作(四)使用shutil.copy復(fù)制文件到另一個(gè)文件或目錄。如果復(fù)制到目錄,那么會(huì)在文件夾創(chuàng)建或覆蓋一個(gè)文件,且該文件與源文件名相同。文件權(quán)限也會(huì)被復(fù)制。用法是:shutil.copy('demo.xlsx','demo_copy二.xlsx')#復(fù)制到一個(gè)新文件shutil.copy('demo.xlsx','folder_move')#復(fù)制到目錄folder_move三.一目錄與文件操作復(fù)制文件文件地基本操作(五)使用shutil.copy二復(fù)制文件到另一個(gè)文件或目錄。該方法與與shutil.copy()類似,另外會(huì)同時(shí)復(fù)制文件地元數(shù)據(jù)。實(shí)際上,該方法是shutil.copy()與shutil.copystat()組合。用法是:shutil.copy二('demo.xlsx','demo_copy三.xlsx')#復(fù)制到一個(gè)新文件shutil.copy二('demo.xlsx','folder_rename')#復(fù)制到目錄folder_rename三.一目錄與文件操作移動(dòng)文件文件地基本操作移動(dòng)文件使用shutil.move方法,用法是:shutil.move('demo_copy三.xlsx','folder_move')#移動(dòng)到目錄folder_move刪除文件刪除文件使用os.remove方法,用法是:os.remove('demo_copy二.xlsx')#刪除文件三.一目錄與文件操作重命名文件文件地基本操作重命名一般情況下使用os.rename方法,用法是:os.rename('demo_copy一.xlsx','demo_copy一_new.xlsx')#將demo_copy一.xlsx重命名為demo_copy一_new.xlsx判斷是否為文件判斷文件是否存在使用os.path.isfile方法,返回結(jié)果為True或False。用法是:os.path.isfile('demo_copy一_new.xlsx')#返回結(jié)果為True。三.一目錄與文件操作從路徑獲取文件擴(kuò)展名文件地基本操作可以使用os.path.split()方法可以將文件切分出來。這里使用os.path.splitext則可以將文件擴(kuò)展名切分出來。例如:os.path.splitext('demo_copy一_new.xlsx')#返回('demo_copy一_new','.xlsx')三.二數(shù)據(jù)文件地讀取與寫入用read,readline與readlines方法讀取文件讀寫普通文件open方法打開文件時(shí)支持不同地讀,寫或追加模式,如下表所示打開模式說明r以只讀方式打開文件。文件地指針將會(huì)放在文件地開頭。默認(rèn)打開模式rb以二制格式打開一個(gè)文件用于只讀r+打開一個(gè)文件用于讀寫三.二數(shù)據(jù)文件地讀取與寫入用read,readline與readlines方法讀取文件讀寫普通文件打開模式說明rb+以二制格式打開一個(gè)文件用于讀寫w打開一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋;如果該文件不存在,則創(chuàng)建新文件wb以二制格式打開一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋;如果該文件不存在,則創(chuàng)建新文件三.二數(shù)據(jù)文件地讀取與寫入用read,readline與readlines方法讀取文件讀寫普通文件打開模式說明wb+以二制格式打開一個(gè)文件用于讀寫。如果該文件已存在則將其覆蓋;如果該文件不存在,則創(chuàng)建新文件a打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件地結(jié)尾,也就是說,新地內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件行寫入三.二數(shù)據(jù)文件地讀取與寫入用read,readline與readlines方法讀取文件讀寫普通文件打開模式說明ab以二制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件地結(jié)尾,也就是說,新地內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件行寫入三.二數(shù)據(jù)文件地讀取與寫入用read,readline與readlines方法讀取文件讀寫普通文件打開模式說明a+打開一個(gè)文件用于讀寫。如果該文件已存在,文件指針將會(huì)放在文件地結(jié)尾,文件打開時(shí)會(huì)是追加模式。如果該文件不存在,則創(chuàng)建新文件用于讀寫ab+以二制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件地結(jié)尾;如果該文件不存在,則創(chuàng)建新文件用于讀寫三.二數(shù)據(jù)文件地讀取與寫入用read,readline與readlines方法讀取文件讀寫普通文件data_file='raw_data' #①定義了一個(gè)數(shù)據(jù)文件#read方法withopen(data_file)asf: #②data一=f.read() #③print(data一) #④#readline方法withopen(data_file)asf: #⑤data二=f.readline() #⑥print(data二) #⑦#readlines方法withopen(data_file)asf: #⑧data三=f.readlines() #⑨print(data三) #⑩使用read方法讀取文件內(nèi)容,讀取結(jié)果是一個(gè)完整字符串使用readline方法讀取文件內(nèi)容,讀取結(jié)果為當(dāng)前指針?biāo)诘赜涗涀址褂胷eadlines方法讀取文件內(nèi)容,讀取結(jié)果為當(dāng)前指針?biāo)诘赜涗浫?二數(shù)據(jù)文件地讀取與寫入write與writelines方法寫入文件讀寫普通文件#write方法withopen('raw_data_write','w+')asf: #①f.write(data二) #②#writelines方法withopen('raw_data_writelines','w+')asf: #③f.writelines(data三) #④在打開一個(gè)文件對(duì)象f,然后使用write方法將一個(gè)字符串寫入raw_data_write文件在打開一個(gè)文件對(duì)象f,然后使用writelines方法將一個(gè)字符串寫入raw_data_writelines文件三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件方法描述read_clipboard從剪切板讀取文本數(shù)據(jù)然后調(diào)用read_table方法解析數(shù)據(jù)到數(shù)據(jù)框read_csv讀取csv文件到數(shù)據(jù)框,默認(rèn)文件分隔符是逗號(hào)read_excel讀取Excel文件到數(shù)據(jù)框,支持xls與xlsx格式地Excelread_feather讀取格式化特征對(duì)象并返回對(duì)象read_fwf讀取表格或固定寬度格式地文本行到數(shù)據(jù)框三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件方法描述read_gbq從GoogleBigQuery讀取數(shù)據(jù)到數(shù)據(jù)框read_hdf讀取HDF文件返回其選擇地對(duì)象read_html讀取HTML信息并返回由數(shù)據(jù)框組成地列表read_json讀取Json信息并返回Series或數(shù)據(jù)框read_msgpack從指定地文件路徑加載msgpackpandas對(duì)象,目前還是一個(gè)實(shí)驗(yàn)庫,存儲(chǔ)格式可能在將來發(fā)布之前不穩(wěn)定三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件方法描述read_parquet讀取parquet對(duì)象并返回?cái)?shù)據(jù)框read_pickle讀取序列化/持久化地對(duì)象并返回read_sas以XPORT或SAS七BDAT格式讀取SAS文件并返回?cái)?shù)據(jù)框,SAS七BDATReader或XportReader對(duì)象三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件方法描述read_sql將SQL查詢結(jié)果或數(shù)據(jù)庫表讀入數(shù)據(jù)框,它是read_sql_query與read_sql_table地封裝。SQL查詢將調(diào)用read_sql_query,而數(shù)據(jù)庫表將調(diào)用read_sql_tableread_sql_query將SQL查詢結(jié)果讀入數(shù)據(jù)框三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件方法描述read_sql_table將數(shù)據(jù)庫表讀入數(shù)據(jù)框read_stata讀取stata文件到數(shù)據(jù)框read_table讀取通用分隔符分隔地?cái)?shù)據(jù)文件到數(shù)據(jù)框,默認(rèn)分隔符是制表符三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件(一)使用read_cvs方法讀取數(shù)據(jù)。通過read_csv方法可以讀取csv(默認(rèn))及其它格式地?cái)?shù)據(jù)文件。語法:read_csv(filepath_or_buffer,sep=',',delimiter=None,header='infer',names=None,index_col=None,usecols=None,**kwds)三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件常用參數(shù):①filepath_or_buffer:字符串,要讀取地文件對(duì)象,必填。②sep:字符串,分隔符號(hào),選填,默認(rèn)值為英文逗號(hào)','。特殊情況下,如果數(shù)據(jù)分割符號(hào)含有多個(gè),例如多列之間通過"|+|"(三個(gè)符號(hào))分隔地,那么分隔符sep地值可以設(shè)置為"\|\+\|",這是python正則表達(dá)式語法。③names:類數(shù)組,列名,選填,默認(rèn)值為空。三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件常用參數(shù):④engine:解析引擎,默認(rèn)情況下設(shè)置為'python',這樣設(shè)置地好處是功能更全面;而如果設(shè)置為'c'則解析速度更快,在大文件解析時(shí)更好用。但是,并不是所有情況下都可以設(shè)置為'c',例如在上面地sep解析規(guī)則,如果設(shè)置為"\|\+\|"則無法指定解析引擎為'c'。⑤skiprows:類字典或整數(shù)型,要跳過地行或行數(shù),選填,默認(rèn)為空。三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件常用參數(shù):⑥nrows:整數(shù)型,要讀取地前記錄總數(shù),選填,默認(rèn)為空,常用來在大型數(shù)據(jù)集下做初步探索之用。⑦na_values:NA值地表現(xiàn)字符串,系統(tǒng)已經(jīng)默認(rèn)支持將'','#N/A','#N/AN/A','#NA','-一.#IND','-一.#QNAND','一.#QNAN','N/A','NA','NULL','NaN','nan'識(shí)別為NA值,如果數(shù)據(jù)有其它NA值地表現(xiàn)形式,可以在這里指定,例如設(shè)置na_values=['','None']將字符串空格與None識(shí)別為NA值。三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件常用參數(shù):⑧thousands:字符串,千位符符號(hào),選填,默認(rèn)為空。⑨decimal:字符串,小數(shù)點(diǎn)符號(hào),選填,默認(rèn)為點(diǎn)(.),在特定情況下應(yīng)用,例如歐洲地千位符與小數(shù)點(diǎn)跟地區(qū)相反,歐洲地四.三二一,一對(duì)應(yīng)地四,三二一.一。三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件常用參數(shù):⑩encoding:文件編碼,默認(rèn)情況下是'utf-八',但需要注意地是從原始數(shù)據(jù)庫導(dǎo)出地?cái)?shù)據(jù)可能有各種編碼,例如gb二三一二,latin一等,因此這里要設(shè)置為跟原始數(shù)據(jù)一致地編碼格式。三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件示例:importpandasaspd #①導(dǎo)入pandas庫data=pd.read_csv('data.csv',names='a,b,c,d,e'.split(',')) #②調(diào)用pd.read_csv讀取data.csv文件,同時(shí)通過names指定文件名,names地值通過字符串地split方法以逗號(hào)為分隔符切分為一個(gè)包含五個(gè)字符串元素地列表print(data) #③打印輸出數(shù)據(jù)三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件(二)使用read_table方法讀取數(shù)據(jù)。通過read_table方法可以讀取通用分隔符分隔地?cái)?shù)據(jù)文件到數(shù)據(jù)框。只要分隔符有一定規(guī)則即可。語法:read_table(filepath_or_buffer,sep='\t',delimiter=None,header='infer',names=None,index_col=None,usecols=None,**kwds)三.二數(shù)據(jù)文件地讀取與寫入讀寫csv,txt,tsv等數(shù)據(jù)文件讀寫普通文件(二)使用read_table方法讀取數(shù)據(jù)。通過read_table方法可以讀取通用分隔符分隔地?cái)?shù)據(jù)文件到數(shù)據(jù)框。只要分隔符有一定規(guī)則即可。示例:table_data=pd.read_table('table_data.txt',sep=';',names='a,b,c,d,e'.split(',')) #①調(diào)用read_table方法讀取table_data.txt文件print(table_data) #②打印輸出結(jié)果三.二數(shù)據(jù)文件地讀取與寫入使用pandas地to_csv保存為數(shù)據(jù)文件讀寫普通文件數(shù)據(jù)框?qū)ο蟊4鏋槠胀ㄎ募r(shí),使用其to_csv方法即可。語法:to_csv(path_or_buf=None,sep=',',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,**kwds)三.二數(shù)據(jù)文件地讀取與寫入使用pandas地to_csv保存為數(shù)據(jù)文件讀寫普通文件數(shù)據(jù)框?qū)ο蟊4鏋槠胀ㄎ募r(shí),使用其to_csv方法即可。常用參數(shù):(一)filepath_or_buffer:字符串,要讀取地文件對(duì)象,必填。(二)sep:字符串,分隔符號(hào),選填,默認(rèn)值為英文逗號(hào)','。也可以指定為其它任意字符。(三)na_rep:NA值表示方法,選填,默認(rèn)值為空。(四)header:header信息是否導(dǎo)出,默認(rèn)為True。三.二數(shù)據(jù)文件地讀取與寫入使用pandas地to_csv保存為數(shù)據(jù)文件讀寫普通文件數(shù)據(jù)框?qū)ο蟊4鏋槠胀ㄎ募r(shí),使用其to_csv方法即可。常用參數(shù):(五)index:index是否導(dǎo)出,默認(rèn)為True。(六)pression:字符串型,設(shè)置輸出文件地壓縮選項(xiàng),可設(shè)置為'gzip','bz二','zip','xz'或None。(七)encoding:文件編碼,Python三默認(rèn)是'utf-八'。三.二數(shù)據(jù)文件地讀取與寫入讀寫普通文件示例:table_data.to_csv('table_data_output.txt',sep=',',index=False)使用pandas地to_csv保存為數(shù)據(jù)文件數(shù)據(jù)框?qū)ο蟊4鏋槠胀ㄎ募r(shí),使用其to_csv方法即可。三.二數(shù)據(jù)文件地讀取與寫入讀寫Excel文件語法:read_excel(io,sheet_name=零,header=零,names=None,index_col=None,**kwds)使用pandas地read_excel讀取excel文件Pandas有讀取Excel地方法read_excel三.二數(shù)據(jù)文件地讀取與寫入使用pandas地read_excel讀取excel文件讀寫Excel文件常用參數(shù):(一)io:字符串,文件路徑,PandasExce或xlrd工作簿,必填。(二)sheet_name:字符串,整數(shù)或混合字符串,整數(shù)地列表或None,默認(rèn)是零,即第一個(gè)sheet。字符串指sheet名稱,整數(shù)指sheet索引地sheet位置,列表則用來表示多個(gè)連續(xù)或不連續(xù)地sheet,設(shè)置為None表示獲取全部sheet。當(dāng)設(shè)置為字符串或整數(shù)時(shí)返回?cái)?shù)據(jù)框,當(dāng)設(shè)置為列表或None時(shí)返回由數(shù)據(jù)框構(gòu)成地字典。三.二數(shù)據(jù)文件地讀取與寫入使用pandas地read_excel讀取excel文件讀寫Excel文件常用參數(shù):(三)header:整數(shù)或由整數(shù)構(gòu)成地列表,默認(rèn)為零。該參數(shù)表示使用哪一行信息來解析為數(shù)據(jù)框地列名,默認(rèn)零代表第一行。如果設(shè)置為由整數(shù)列表,那么將使用多行信息組成聯(lián)合索引。如果設(shè)置為None代表表示Excel沒有列表信息。(四)names:類數(shù)組,默認(rèn)為None,用來表示列名,僅當(dāng)header設(shè)置為None時(shí)使用。三.二數(shù)據(jù)文件地讀取與寫入使用pandas地read_excel讀取excel文件讀寫Excel文件常用參數(shù):(五)index_col:整數(shù)或由整數(shù)構(gòu)成地列表,默認(rèn)為None。該參數(shù)表示哪一列表示index值。如果設(shè)置為由整數(shù)列表,那么將使用多行信息組成聯(lián)合索引。(六)skiprows:類列表,要跳過地行或行數(shù),選填,默認(rèn)為空。三.二數(shù)據(jù)文件地讀取與寫入使用pandas地read_excel讀取excel文件讀寫Excel文件常用參數(shù):(七)na_values:NA值地表現(xiàn)字符串,系統(tǒng)已經(jīng)默認(rèn)支持將asNaN:'','#N/A','#N/AN/A','#NA','-一.#IND','-一.#QNAN','-NaN','-nan','一.#IND','一.#QNAN','N/A','NA','NULL','NaN','n/a','nan','null'.識(shí)別為NA值,如果數(shù)據(jù)有其它NA值地表現(xiàn)形式,可以在這里指定,例如設(shè)置na_values=['','None']將字符串空格與None識(shí)別為NA值。三.二數(shù)據(jù)文件地讀取與寫入讀寫Excel文件示例:importpandasaspd #①導(dǎo)入pandas庫data_file='demo.xlsx' #②定義了一個(gè)Excel文件data_一=pd.read_excel(data_file,sheet_name=零) #③讀取第一個(gè)sheet地?cái)?shù)據(jù)print(data_一) #④打印輸出data_二=pd.read_excel(data_file,sheet_name=一) #⑤讀取第二個(gè)sheet地?cái)?shù)據(jù)print(data_二) #⑥打印輸出data_三=pd.read_excel(data_file,sheet_name=None) #⑦讀取所有地sheet文件print(data三) #⑧打印輸出使用pandas地read_excel讀取excel文件三.二數(shù)據(jù)文件地讀取與寫入讀寫Excel文件語法:to_excel(excel_writer,sheet_name='Sheet一',na_rep='',float_format=None,columns=None,header=True,index=True,index_label=None,startrow=零,startcol=零,engine=None,merge_cells=True,encoding=None,inf_rep='inf',verbose=True,freeze_panes=None)使用pandas地to_excel寫入excel文件Pandas寫入excel主要使用to_excel方法三.二數(shù)據(jù)文件地讀取與寫入使用pandas地to_excel寫入excel文件讀寫Excel文件常用參數(shù):①excel_writer:字符串或excel_writer對(duì)象,必填。②sheet_name:字符串,默認(rèn)是Sheet一。③header:布爾型或字符串列表,寫入Excel地列名,默認(rèn)為True。設(shè)置為字符串列表將為導(dǎo)出地?cái)?shù)據(jù)設(shè)置列名地別名。④index:index是否導(dǎo)出,默認(rèn)為True。三.二數(shù)據(jù)文件地讀取與寫入讀寫Excel文件示例:data_二.to_excel('demo_write_一.xlsx')#將data_二寫入到demo_write_一.xlsx使用pandas地read_excel讀取excel文件(一)寫入單個(gè)sheet到Excel三.二數(shù)據(jù)文件地讀取與寫入讀寫Excel文件示例:withpd.ExcelWriter('demo_write_二.xlsx')aswriter: #①pd.ExcelWriter打開一個(gè)名為demo_write_二.xlsx,并創(chuàng)建對(duì)象writerforname,dataindata_三.items(): #②使用for循環(huán)遍歷data_三地key-value鍵值對(duì),獲取每個(gè)sheet地名稱與數(shù)據(jù)data.to_excel(writer,sheet_name=name) #③使用to_excel方法寫入writer對(duì)象writer.save() #④保存創(chuàng)建并寫入地?cái)?shù)據(jù)信息使用pandas地read_excel讀取excel文件(二)寫入多個(gè)sheet到同一個(gè)Excel。在一個(gè)sheet寫入多個(gè)sheet,需要配合pandas地ExcelWriter方法三.二數(shù)據(jù)文件地讀取與寫入讀寫JSON文件語法:json.load(fp,*,cls=None,object_hook=None,parse_float=None,parse_int=None,parse_constant=None,object_pairs_hook=None,**kw)使用json.load讀取json文件json.load方法可以將json文件讀取出來。三.二數(shù)據(jù)文件地讀取與寫入讀寫JSON文件常用參數(shù):使用json.load讀取json文件fp:JSON數(shù)據(jù)文件對(duì)象,該對(duì)象需要支持.read()方法示例:importjson #①導(dǎo)入Python自帶地JSON庫withopen(‘geo.json’)asf: #②使用with方法讀取文件對(duì)象為fjson_data=json.load(f) #③使用json地load方法讀取文件對(duì)象f,讀取地結(jié)果json_data是一個(gè)字典格式lat_lng=json_data['result']['location'] #④使用多層key找到目地信息,代碼獲取了location信息print(lat_lng) #⑤打印輸出三.二數(shù)據(jù)文件地讀取與寫入讀寫JSON文件語法:json.dump(obj,fp,*,skipkeys=False,ensure_ascii=True,check_circular=True,allow_nan=True,cls=None,indent=None,separators=None,default=None,sort_keys=False,**kw)使用json.dump寫入json文件json.dump方法可以將json對(duì)象寫入文件三.二數(shù)據(jù)文件地讀取與寫入讀寫JSON文件常用參數(shù):使用json.dump寫入json文件(一)obj:JSON數(shù)據(jù)對(duì)象(二)fp:要寫入地文件對(duì)象,該對(duì)象需要支持.write()方法(三)ensure_ascii:布爾型,設(shè)置為False表示可以包含非ASCII編碼字符串,例如文三.二數(shù)據(jù)文件地讀取與寫入讀寫JSON文件示例:使用json.dump寫入json文件withopen('geo二.json','w+')asf: #①使用open方法打開geo二.json文件,并使用w+模式設(shè)置如果該文件已存在則將其覆蓋;如果該文件不存在,則創(chuàng)建新文件,配合with方法創(chuàng)建文件對(duì)象fjson.dump(json_data,f) #②使用json地dump方法將json_data寫入文件對(duì)象f三.二數(shù)據(jù)文件地讀取與寫入讀寫SPSSStatistics/SAS/Stata數(shù)據(jù)文件示例:使用pyreadstat.read_sav讀取SPSSStatistics數(shù)據(jù)文件importpyreadstat #①導(dǎo)入pyreadstat庫data,meta=pyreadstat.read_sav('ships.sav') #②調(diào)用pyreadstat地read_sav方法,讀取ships.sav文件,返回data與meta信息data.head() #③調(diào)用DataFrame地head方法,顯示前五條數(shù)據(jù)vars(meta).keys() #④調(diào)用系統(tǒng)地vars方法,將meta對(duì)象轉(zhuǎn)換為字典對(duì)象,這樣便可以通過字典地方法獲取對(duì)應(yīng)地值三.二數(shù)據(jù)文件地讀取與寫入讀寫SPSSStatistics/SAS/Stata數(shù)據(jù)文件示例:使用pyreadstat.read_sas七bdat讀取SAS數(shù)據(jù)文件importpyreadstat #①導(dǎo)入pyreadstat庫data,meta=pyreadstat.read_sas七bdat('omov.sas七bdat') #②調(diào)用pyreadstat地read_sas七bdat方法讀取omov.sas七bdat文件,并返回?cái)?shù)據(jù)框?qū)ο骴ata與metadata.head() #③調(diào)用data地head方法,展示前五條數(shù)據(jù)三.二數(shù)據(jù)文件地讀取與寫入讀寫SPSSStatistics/SAS/Stata數(shù)據(jù)文件示例:使用pyreadstat.read_dta讀取Stata數(shù)據(jù)文件importpyreadstat #①導(dǎo)入pyreadstat庫data,meta=pyreadstat.read_dta('stata.dta') #②調(diào)用pyreadstat地read_dta方法讀取stata.dta文件,并返回?cái)?shù)據(jù)框?qū)ο骴ata與metadata.head() #③調(diào)用data地head方法,展示前五條數(shù)據(jù)三.二數(shù)據(jù)文件地讀取與寫入讀寫R數(shù)據(jù)文件示例:使用pyreadr.read_r讀取R語言數(shù)據(jù)文件importpyreadr #①data=pyreadr.read_r('R_data.Rdata') #②調(diào)用pyreadr.read_r方法讀取R_data.Rdata文件,并返回字典對(duì)象dataprint(data.keys()) #③打印data地所有key,即數(shù)據(jù)文件對(duì)象地名稱。該對(duì)象,只有一個(gè)數(shù)據(jù)對(duì)象raw_data:odict_keys(['raw_data'])data['raw_data'].head() #④三.二數(shù)據(jù)文件地讀取與寫入讀寫R數(shù)據(jù)文件示例:使用pyreadr.write_rdata保存為R數(shù)據(jù)文件pyreadr.write_rdata("R_data_output.RData",data['raw_data'],df_name="data")三.三數(shù)據(jù)庫地讀取與寫入讀寫結(jié)構(gòu)化(關(guān)系型)數(shù)據(jù)庫MySQLPymysql操作MySQL地基本流程:建立MySQL連接獲得游標(biāo)執(zhí)行SQL語句解析返回結(jié)果提連接動(dòng)作關(guān)閉游標(biāo)與連接三.三數(shù)據(jù)庫地讀取與寫入讀寫結(jié)構(gòu)化(關(guān)系型)數(shù)據(jù)庫MySQLPymysql操作MySQL地基本流程:一)導(dǎo)入庫及定義數(shù)據(jù)庫連接信息importpymysql #①導(dǎo)入pymysqlimportnumpyasnp #②導(dǎo)入numpyimportpandasaspd #③導(dǎo)入pandas#定義數(shù)據(jù)庫連接信息config={‘host’:‘一二七.零.零.一’, #④主機(jī)名‘user’:‘root’, #⑤用戶名‘password’:‘一二三四五六’, #⑥密碼‘port’:三三零六, #⑦端口‘database’:‘python_data’, #⑧數(shù)據(jù)庫名‘charset’:‘utf八’ #⑨字符編碼}三.三數(shù)據(jù)庫地讀取與寫入讀寫結(jié)構(gòu)化(關(guān)系型)數(shù)據(jù)庫MySQLPymysql操作MySQL地基本流程:(二)連接數(shù)據(jù)庫。在定義好數(shù)據(jù)庫基本信息后,下面開始獲取數(shù)據(jù)庫連接對(duì)象,包括數(shù)據(jù)庫連接以及游標(biāo)。#連接數(shù)據(jù)庫n=pymysql.connect(**config) #①使用pymysql.connect方法并調(diào)用config信息建立數(shù)據(jù)庫連接ncursor=n.cursor() #②通過cursor方法獲取游標(biāo)cursor三.三數(shù)據(jù)庫地讀取與寫入讀寫結(jié)構(gòu)化(關(guān)系型)數(shù)據(jù)庫MySQLPymysql操作MySQL地基本流程:(三)讀取數(shù)據(jù)庫地現(xiàn)有數(shù)據(jù)sql="SELECT*FROM`order`" #①要執(zhí)行地SQL語句,該SQL語句地意思是從現(xiàn)有地order數(shù)據(jù)表讀取所有地?cái)?shù)據(jù)cursor.execute(sql) #②調(diào)用cursor地execute執(zhí)行定義好地SQL語句data=cursor.fetchall() #③調(diào)用cursor地fetchall方法返回所有符合SQL條件地記錄,除了該方法,也可以使用fetchmany指定返回結(jié)果地?cái)?shù)量,或者使用fetchone只返回一條結(jié)果foriindata[:二]: #④讀取每條數(shù)據(jù)print(i) #⑤打印三.三數(shù)據(jù)庫地讀取與寫入讀寫結(jié)構(gòu)化(關(guān)系型)數(shù)據(jù)庫MySQLPymysql操作MySQL地基本流程:(四)寫入數(shù)據(jù)到數(shù)據(jù)庫。判斷目地表是否存在,如果不存在則新建。cursor.execute("showtables") #①查詢當(dāng)前數(shù)據(jù)庫地所有表地表名table_object=cursor.fetchall() #②fetchall方法,返回所有表結(jié)果table_list=[t[零]fortintable_object] #③通過列表推導(dǎo)式,提取將返回結(jié)果地表名ifnot‘python_table’intable_list: #④通過判斷判斷表名是否存在cursor.execute(‘’‘ #⑤執(zhí)行函數(shù)CREATETABLEpython_table( #⑥SQL創(chuàng)建表地功能idint(二), #⑦定義id列col一int(二), #⑧定義col一列col二
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《壓力焊與釬焊》教學(xué)大綱
- 教科版五年級(jí)科學(xué)教案
- 玉溪師范學(xué)院《社會(huì)學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 2023年油氣鉆采服務(wù)項(xiàng)目成效分析報(bào)告
- 2024年粘結(jié)稀土永磁材料項(xiàng)目成效分析報(bào)告
- 2019粵教版 高中美術(shù) 選擇性必修4 設(shè)計(jì)《第一單元 傳情達(dá)意的視覺傳達(dá)設(shè)計(jì)》大單元整體教學(xué)設(shè)計(jì)2020課標(biāo)
- 差異化勞動(dòng)合同
- 餐飲技術(shù)入股協(xié)議書范本合同
- 財(cái)務(wù)機(jī)構(gòu)代理出口退稅合同范本
- 補(bǔ)充協(xié)議取消原合同部分條款模板
- 業(yè)務(wù)居間合同范本2024年
- 員工入股退股合同范例
- 2024年xx村10月駐村工作總結(jié)
- 【浙江卷】浙江省2024學(xué)年第一學(xué)期杭州市2025屆高三年級(jí)教學(xué)質(zhì)量檢測(cè)(杭州一模)(11.4-11.6)英語試卷
- 小學(xué)語文深度教學(xué)心得體會(huì)范文(31篇)
- JJG2063-液體流量計(jì)器具檢定系統(tǒng)表檢定規(guī)程
- 化 學(xué)二氧化碳的實(shí)驗(yàn)室制取課件-2024-2025學(xué)年九年級(jí)化學(xué)人教版上冊(cè)
- 2024年新人教版一年級(jí)數(shù)學(xué)上冊(cè)第4單元《第1課時(shí) 10的再認(rèn)識(shí)》課件
- 消防管道及設(shè)備安裝技術(shù)交底
- 標(biāo)準(zhǔn)作業(yè)練習(xí)卷含答案
- 2024三新供電服務(wù)限公司第二批供電服務(wù)職工招聘261人高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
評(píng)論
0/150
提交評(píng)論