《大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ)》課件 項(xiàng)目三模塊二 文件讀寫方法_第1頁(yè)
《大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ)》課件 項(xiàng)目三模塊二 文件讀寫方法_第2頁(yè)
《大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ)》課件 項(xiàng)目三模塊二 文件讀寫方法_第3頁(yè)
《大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ)》課件 項(xiàng)目三模塊二 文件讀寫方法_第4頁(yè)
《大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ)》課件 項(xiàng)目三模塊二 文件讀寫方法_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目三數(shù)據(jù)采集《大數(shù)據(jù)技術(shù)應(yīng)用基礎(chǔ)》模塊二

文件讀寫方法核心目標(biāo)職業(yè)能力1.了解網(wǎng)絡(luò)爬蟲的用途以及相關(guān)使用規(guī)范;2.能掌握Python爬蟲的基本流程框架;3.能使用Python爬蟲爬取需要的數(shù)據(jù);4.能將Python處理的數(shù)據(jù)與本地?cái)?shù)據(jù)相互轉(zhuǎn)換。職業(yè)素養(yǎng)1.養(yǎng)成自行獲取數(shù)據(jù)分析所需要資料的習(xí)慣;2.培養(yǎng)遵守相關(guān)網(wǎng)絡(luò)爬蟲法律規(guī)定與規(guī)范的精神;3.培養(yǎng)編寫規(guī)范代碼習(xí)慣以提高代碼靈活性。知識(shí)圖譜項(xiàng)目背景為了完成老師針對(duì)茶葉品類做一份詳盡調(diào)查報(bào)告的任務(wù),在學(xué)習(xí)了Python的基本操作以后,小張首先需要進(jìn)行茶葉品類相關(guān)數(shù)據(jù)的獲取,而對(duì)數(shù)據(jù)的收集工作,網(wǎng)絡(luò)爬蟲有著極高的效率與準(zhǔn)確性,可以用較短的時(shí)間獲取大量的數(shù)據(jù)以供分析,故小張將在本項(xiàng)目開始學(xué)習(xí)如何利用Python進(jìn)行網(wǎng)絡(luò)爬蟲爬取需要的數(shù)據(jù)并保存到本地。在本項(xiàng)目中,小張需要學(xué)習(xí)本地文件的操作以及如何編寫爬蟲程序,找到適合的數(shù)據(jù)網(wǎng)頁(yè),并使用爬蟲數(shù)據(jù)進(jìn)行爬取,最后再使用本地文件的操作方法將數(shù)據(jù)保存為Excel類的表格型文件。0102常用文件類型的讀寫方法文件批量重命名的方法問題引入學(xué)習(xí)了Python的基本操作原理之后,小張打算繼續(xù)學(xué)習(xí)使用Python進(jìn)行數(shù)據(jù)分析,而數(shù)據(jù)分析首先需要準(zhǔn)備的就是數(shù)據(jù),那么Python可以處理哪些類型的數(shù)據(jù)呢?又是如何處理的呢?能夠?qū)崿F(xiàn)批量處理嗎?小張來(lái)實(shí)驗(yàn)室找到老師,希望他能夠教會(huì)自己如何用python處理本地?cái)?shù)據(jù)。常用文件類型的讀寫方法01一、常用文件類型的讀寫方法代碼作用open()打開文件close()關(guān)閉文件read()讀取整個(gè)文件readline()讀取一行readlines()返回一個(gè)每一行作為一個(gè)元素的列表write()以字符串形式寫入文件writelines()以列表形式寫入文件pd.Series()創(chuàng)建Series類型的變量pd.DataFrame()創(chuàng)建DataFrame類型的變量df.loc()選擇DataFrame的某些行df[]選擇DataFrame的某些列df.iloc()對(duì)DataFrame進(jìn)行切片,選擇某些行某些列pd.read_excel()讀取excel文件df.to_excel()將DataFrame變量保存為excel文件os.listdir()讀取目錄下的所有文件os.path.join()拼接路徑os.rename()修改文件名(完整的路徑)新函數(shù)及變量屬性一、常用文件類型的讀寫方法(一)文本類文件讀寫Python進(jìn)行數(shù)據(jù)分析一般讀寫的格式有txt格式的文本文件、以及csv、xlsx等格式的表格文件。打開文件關(guān)閉文件讀取文件寫入文件一、常用文件類型的讀寫方法(一)文本類文件讀寫打開文件Python中打開文件:open函數(shù)。open('file','mode')file參數(shù)輸入要讀取的文件的路徑mode參數(shù)可不加,若不加則默認(rèn)為只讀模式open有兩個(gè)參數(shù):一、常用文件類型的讀寫方法(一)文本類文件讀寫1.r:文件只能讀取,若文件不存在則會(huì)報(bào)錯(cuò)。2.r+:文件既能讀取又能寫入,若文件不存在則會(huì)報(bào)錯(cuò),寫入時(shí)會(huì)覆蓋原內(nèi)容。3.w:文件只能寫入,若文件不存在則會(huì)先創(chuàng)建再寫入,寫入時(shí)會(huì)覆蓋原內(nèi)容。4.w+:文件既能讀取又能寫入,若文件不存在則會(huì)先創(chuàng)建再寫入,寫入時(shí)會(huì)覆蓋原內(nèi)容。5.a(chǎn):追加模式,若文件不存在則會(huì)先創(chuàng)建再寫入,對(duì)文件的寫入在最末尾進(jìn)行。6.a(chǎn)+:件既能讀取又能寫入,若文件不存在則會(huì)先創(chuàng)建再寫入,對(duì)文件的寫入在最末尾進(jìn)行。open常用參數(shù)選擇:打開文件一、常用文件類型的讀寫方法(一)文本類文件讀寫需要讀取二進(jìn)制文件,則需要在字母后加上b,如rb、rb+等。例如:要讀取C盤下載文件夾下的a.txt文件并以f來(lái)命名此文件對(duì)象。①在該目錄下新建一個(gè)名為a.txt的文件②進(jìn)行Python操作代碼f=open('C:/下載/a.txt','r')#讀取f=open('C:/下載/a.txt','w')#寫入打開文件一、常用文件類型的讀寫方法(一)文本類文件讀寫Python中文件的關(guān)閉:close函數(shù)、with關(guān)鍵字打開文件。代碼f=open('C:/下載/a.txt','r')#已只讀模式打開文件f.close()#關(guān)閉文件close函數(shù)with關(guān)鍵字打開文件代碼withopen('C:/下載/a.txt')asf:#以with關(guān)鍵字打開文件關(guān)閉文件一、常用文件類型的讀寫方法(一)文本類文件讀寫f.read(size)f.readline(size)f.readlines(sizeint)size:表示從文件讀取的字節(jié)數(shù)讀取文件sizeint:默認(rèn)為讀取全部讀取文件函數(shù)有read、readline、readlines三個(gè)。一、常用文件類型的讀寫方法(一)文本類文件讀寫讀取文件函數(shù)有read、readline、readlines三個(gè)。讀取文件read函數(shù)會(huì)讀取一些數(shù)據(jù)并將其作為字符串(在文本模式下)或字節(jié)對(duì)象(在二進(jìn)制模式下)返回。readline函數(shù)從文件中讀取整行,包括換行符'\n'。readlines函數(shù)讀取文件里面的所有行的,返回的是一個(gè)文件里所有行組成的列表。一、常用文件類型的讀寫方法(一)文本類文件讀寫讀取文件例如:在文本文件a.txt中寫入內(nèi)容如圖一、常用文件類型的讀寫方法(一)文本類文件讀寫代碼#encoding='utf-8'代表用utf-8的編碼進(jìn)行讀取,記事本右下角可看到文件編碼,下同withopen('c:/下載/a.txt',encoding='utf-8')asf:print(f.read())#讀取全文withopen('c:/下載/a.txt',encoding='utf-8')asf:print(f.readline())#讀取第一行print(f.readline())#接著讀第二行withopen('c:/下載/a.txt',encoding='utf-8')asf:print(f.readlines())#讀每一行,以列表形式返回輸出結(jié)果你好,小張您好,老師你好,同學(xué)你好,小張['你好,小張\n','\n','您好,老師\n','\n','你好,同學(xué)']讀取文件使用的代碼命令與結(jié)果一、常用文件類型的讀寫方法(一)文本類文件讀寫寫入文件寫入文件有兩個(gè)函數(shù):write與writelines。f.write(str)f.writelines(sequence)str參數(shù):要寫入的字符串sequence參數(shù):一個(gè)以字符串為元素的列表,依次寫入文件而不自動(dòng)換行,寫操作相比讀操作簡(jiǎn)單。一、常用文件類型的讀寫方法(一)文本類文件讀寫寫入文件代碼#以只寫模式用with打開文件,文件原來(lái)不存在,會(huì)自動(dòng)創(chuàng)建一個(gè)以b.txt命名的空白文件withopen('c:/下載/b.txt','w')asf:f.write('你好,小張')#寫入“你好,小張”withopen('c:/下載/b.txt','a')asf:#以追加模式使用with關(guān)鍵字打開b.txt文件f.write('您好,老師')#寫入“您好,老師”f.writelines(['你','好',',同學(xué)'])#寫入“你”,寫入“好”,寫入“,同學(xué)”一、常用文件類型的讀寫方法(一)文本類文件讀寫寫入文件輸出結(jié)果(在b.txt中)記事本b第一次寫入結(jié)果記事本b第二次寫入結(jié)果一、常用文件類型的讀寫方法(二)表格類文件讀寫Windows系統(tǒng)里,最常用的表格處理工具是MicrosoftExcelPython主要通過(guò)Pandas庫(kù)進(jìn)行一、常用文件類型的讀寫方法(二)表格類文件讀寫PandasSeriesSeries類似于表格中的一列,類似于一維數(shù)組,可以保存任何類型的數(shù)據(jù)。由兩部分組成:索引與值。其函數(shù)為:pd.Series(data,index,dtype,name,copy)data參數(shù)代表要輸入的數(shù)據(jù),為列表格式;index為數(shù)據(jù)的索引,默認(rèn)從0開始逐個(gè)加1;dtype代表輸入數(shù)據(jù)的格式,有字符串str,整型int等,默認(rèn)由系統(tǒng)自行判斷;name是給Series命名,默認(rèn)為空;copy代表是否拷貝數(shù)據(jù)生成副本,默認(rèn)為False。使用pandas庫(kù)的函數(shù)首先需要將pandas包導(dǎo)入,簡(jiǎn)寫為pd,后續(xù)內(nèi)容未作額外說(shuō)明則均遵循此規(guī)則一、常用文件類型的讀寫方法(二)表格類文件讀寫代碼importpandasaspd#導(dǎo)入pandas庫(kù)并記為pdlistOne=['你','我','他']#定義列表作為創(chuàng)建Series的數(shù)據(jù)s=pd.Series(listOne,index=['a','b','c'],name='人稱')#以listOne列表為數(shù)據(jù)創(chuàng)建標(biāo)簽為a,b,c,名稱為人稱的Series數(shù)據(jù)print(s)輸出結(jié)果a你b我c他Name:人稱,dtype:objectPandasSeriesa,b,c為索引你,我,他為值,對(duì)象的名字為人稱數(shù)據(jù)類型為object一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrameDataFrame是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),含有一組有序的列,與Series一樣,同樣可以保存任何類型的數(shù)據(jù)。DataFrame既有行索引也有列索引,它的每一列都可以看作是一個(gè)Series,這些Series共用同一個(gè)索引。pd.DataFrame(data,index,columns,dtype,copy)

其函數(shù)為:一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFramedata為一組ndarray(n維數(shù)組)、Series,list(列表),dict(字典)等類型的數(shù)據(jù)index代表行索引也稱行標(biāo)簽,是一列值。columns則代表列索引也稱列標(biāo)簽,是一行值,可以看成是每一個(gè)組成DataFrame的Series的名字。pd.DataFrame(data,index,columns,dtype,copy)一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame例如:假設(shè)班級(jí)中有小張、小明與小紅三位同學(xué),現(xiàn)要將他們的年齡錄入DataFrame中。代碼importpandasaspd#導(dǎo)入pandas庫(kù)并記為pd#創(chuàng)建二維列表,即一個(gè)列表里的元素為一個(gè)個(gè)列表data=[['小張',19],['小明',21],['小紅',20]]#創(chuàng)建DataFrame,以二維列表作為數(shù)據(jù),列標(biāo)簽為“名字”,“年齡”,行標(biāo)簽為1,2,3df=pd.DataFrame(data,columns=['名字','年齡'],index=[1,2,3])print(df)輸出結(jié)果名字年齡1

小張192

小明213

小紅20一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame1.取行數(shù)據(jù)代碼importpandasaspd#導(dǎo)入pandas庫(kù)并記為pd#創(chuàng)建二維列表,即一個(gè)列表里的元素為一個(gè)個(gè)列表data=[['小張',19],['小明',21],['小紅',20]]#創(chuàng)建DaaFrame,以二維列表作為數(shù)據(jù),列標(biāo)簽為“名字”,“年齡”,行標(biāo)簽為1,2,3df=pd.DataFrame(data,columns=['名字','年齡'],index=[1,2,3])print(df.loc[1])#loc[1]代表取第一行print(df.loc[[1,3]])#loc[[1,3]]代表取第一行、第三行輸出結(jié)果名字小張年齡19Name:1,dtype:object名字年齡1

小張193

小紅20loc屬性一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame2.取列數(shù)據(jù)在變量名之后加上[列標(biāo)簽]代碼importpandasaspd#導(dǎo)入pandas庫(kù)并記為pd#創(chuàng)建二維列表,即一個(gè)列表里的元素為一個(gè)個(gè)列表data=[['小張',19],['小明',21],['小紅',20]]#創(chuàng)建DaaFrame,以二維列表作為數(shù)據(jù),列標(biāo)簽為“名字”,“年齡”,行標(biāo)簽為1,2,3df=pd.DataFrame(data,columns=['名字','年齡'],index=[1,2,3])#在DataFrame變量名后直接加上中括號(hào),代表取列表簽為“名字”的一列print(df['名字'])print(df[['名字','年齡']])#取列表簽為“名字”和“年齡”的兩列輸出結(jié)果1小張2小明3小紅Name:名字,dtype:object名字年齡1

小張192

小明213

小紅20一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame3.修改/寫入數(shù)據(jù)對(duì)取得的對(duì)象用“=”進(jìn)行賦值代碼importpandasaspd#導(dǎo)入pandas庫(kù)并記為pddata=[['小張',19],['小明',21],['小紅',20]]#創(chuàng)建二維列表,即一個(gè)列表里的元素為一個(gè)個(gè)列表df=pd.DataFrame(data,columns=['名字','年齡'],index=[1,2,3])#創(chuàng)建DaaFrame數(shù)據(jù),以二維列表作為數(shù)據(jù),列標(biāo)簽為“名字”,“年齡”,行標(biāo)簽為1,2,3print(df)#輸出修改前的DataFrame數(shù)據(jù)df.iloc[0,1]=20#將第一行第二列的數(shù)據(jù)修改為20print(df)#輸出修改后的DataFrame數(shù)據(jù)df.loc['4']=['小王',18]#將行標(biāo)簽為4的一行修改為第一列的值為小王,第二列的值為18,由于沒有行標(biāo)簽為4的行,故會(huì)創(chuàng)建新的行print(df)例如:發(fā)現(xiàn)小張年紀(jì)搞錯(cuò)了,其實(shí)是20歲,并且加入了新同學(xué)小王,年齡是18歲。一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame3.修改/寫入數(shù)據(jù)對(duì)取得的對(duì)象用“=”進(jìn)行賦值輸出結(jié)果名字年齡1

小張192

小明213

小紅20名字年齡1

小張202

小明213

小紅20名字年齡1

小張202

小明213

小紅204

小王18例如:發(fā)現(xiàn)小張年紀(jì)搞錯(cuò)了,其實(shí)是20歲,并且加入了新同學(xué)小王,年齡是18歲。一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame4.在Python中操作表格類數(shù)據(jù)pd.read_excel(io,sheet_name,header,names,index_col,usecols,nrows)io代表文件的路徑sheet_name代表要讀取的工作表名稱header代表使用哪一行作為列標(biāo)簽names為自定義行標(biāo)簽index_col代表使用哪一列作為行標(biāo)簽usecols代表要讀取哪些列nrows代表需要讀取多少行讀取Excel的數(shù)據(jù)的函數(shù):一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame如右圖是網(wǎng)絡(luò)爬取的一個(gè)茶葉品牌評(píng)價(jià)數(shù)據(jù)Excel表格,現(xiàn)要將其讀入DataFrame中。茶葉評(píng)價(jià)數(shù)據(jù)表格(可從附錄中的數(shù)據(jù)中心下載)4.在Python中操作表格類數(shù)據(jù)一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame代碼importpandasaspd#導(dǎo)入pandas庫(kù)并記為pddf=pd.read_excel('C:/下載/茶葉評(píng)價(jià)數(shù)據(jù).xlsx',index_col='排名',usecols=[0,1,2,5],nrows=5)#讀取tea.xlsx文件,以排名作為列表簽,只讀取第1,2,3,6列,只讀取五行print(df)輸出結(jié)果品牌

全部評(píng)價(jià)好評(píng)排名1樂品樂茶

100萬(wàn)+67萬(wàn)+2八馬

20萬(wàn)+

9.3萬(wàn)+3福茗源

10萬(wàn)+

3萬(wàn)+4華源

10萬(wàn)+

2.5萬(wàn)+5第一江南

5萬(wàn)+

1.4萬(wàn)+讀入DataFrame中4.在Python中操作表格類數(shù)據(jù)一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame代碼importpandasaspd#導(dǎo)入pandas庫(kù)并記為pddf=pd.read_excel('C:/下載/茶葉評(píng)價(jià)數(shù)據(jù).xlsx',index_col='排名',usecols=[0,1,2,5],nrows=5)#讀取tea.xlsx文件,以排名作為列表簽,只讀取第1,2,3,6列,只讀取五行defgetNum(x):#定義函數(shù),將數(shù)據(jù)通過(guò)切片的方式去掉“萬(wàn)+”并轉(zhuǎn)化為浮點(diǎn)型returnfloat(x[:-2])df['好評(píng)率']=df['好評(píng)'].apply(getNum)*100/df['全部評(píng)價(jià)'].apply(getNum)#將好評(píng)與全部評(píng)價(jià)兩列的數(shù)據(jù)使用getNum函數(shù)轉(zhuǎn)化格式后相除再乘100得到好評(píng)占全部評(píng)價(jià)的百分比print(df)計(jì)算好評(píng)率并寫到新增的一列上4.在Python中操作表格類數(shù)據(jù)一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame輸出結(jié)果品牌全部評(píng)價(jià)好評(píng)好評(píng)率排名1樂品樂茶100萬(wàn)+67萬(wàn)+67.02八馬20萬(wàn)+9.3萬(wàn)+46.53福茗源10萬(wàn)+3萬(wàn)+30.04華源10萬(wàn)+2.5萬(wàn)+25.05第一江南5萬(wàn)+1.4萬(wàn)+28.04.在Python中操作表格類數(shù)據(jù)計(jì)算好評(píng)率并寫到新增的一列上一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame寫入新的Excel文件中df.to_excel(excel_writer,sheet_name...)代碼importpandasaspd#導(dǎo)入pandas庫(kù)并記為pddf=pd.read_excel('C:/下載/茶葉評(píng)價(jià)數(shù)據(jù).xlsx',index_col='排名',usecols=[0,1,2,5],nrows=5)#讀取tea.xlsx文件,以排名作為列表簽,只讀取第1,2,3,6列,只讀取五行defgetNum(x):#定義函數(shù),將數(shù)據(jù)通過(guò)切片的方式去掉“萬(wàn)+”并轉(zhuǎn)化為浮點(diǎn)型returnfloat(x[:-2])df['好評(píng)率']=df['好評(píng)'].apply(getNum)*100/df['全部評(píng)價(jià)'].apply(getNum)#將好評(píng)與全部評(píng)價(jià)兩列的數(shù)據(jù)使用getNum函數(shù)轉(zhuǎn)化格式后相除再乘100得到好評(píng)占全部評(píng)價(jià)的百分比df.to_excel('C:/下載/求取好評(píng)率.xlsx')#將新的數(shù)據(jù)寫入到本地的excel文件中4.在Python中操作表格類數(shù)據(jù)一、常用文件類型的讀寫方法(二)表格類文件讀寫DataFrame輸出結(jié)果寫入新的Excel文件中4.在Python中操作表格類數(shù)據(jù)文件批量重命名的方法02二、文件批量重命名的方法遍歷文件夾函數(shù)路徑拼接函數(shù)文件重命名函數(shù)for循環(huán)二、文件批量重命名的方法(一)遍歷文件夾函數(shù)os.listdir(path)代碼importos#導(dǎo)入os庫(kù)print(os.listdir('C:/下載'))#輸出下載目錄下的所有文件輸出結(jié)果['a.txt','b.txt','求取好評(píng)率.xlsx','茶葉評(píng)價(jià)數(shù)據(jù).xlsx']對(duì)本地文件的操作主要通過(guò)os庫(kù)來(lái)處理首先進(jìn)行重命名文件的讀取,使用遍歷文件夾函數(shù):二、文件批量重命名的方法

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論