python讀寫資料讀寫csv檔案(pandas用法) - 程式人生

文章推薦指數: 80 %
投票人數:10人

python中資料處理是比較方便的,經常用的就是讀寫檔案,提取資料等, ... 寫入一行,就是你儲存的一個列表是一行資料,你想把這一行資料寫入csv檔案。

程式人生>程式設計>python讀寫資料讀寫csv檔案(pandas用法) python讀寫資料讀寫csv檔案(pandas用法) 阿新•來源:網路•發佈:2020-12-15 python中資料處理是比較方便的,經常用的就是讀寫檔案,提取資料等,本部落格主要介紹其中的一些用法。

Pandas是一個強大的分析結構化資料的工具集;它的使用基礎是Numpy(提供高效能的矩陣運算);用於資料探勘和資料分析,同時也提供資料清洗功能。

一、pandas讀取csv檔案 資料處理過程中csv檔案用的比較多。

importpandasaspd data=pd.read_csv('F:/Zhu/test/test.csv') 下面看一下pd.read_csv常用的引數: pandas.read_csv(filepath_or_buffer,sep=',',delimiter=None,header='infer',names=None,index_col=None,usecols=None,squeeze=False,prefix=None,mangle_dupe_cols=True,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skipinitialspace=False,skiprows=None,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=False,skip_blank_lines=True,parse_dates=False,infer_datetime_format=False,keep_date_col=False,date_parser=None,dayfirst=False,iterator=False,chunksize=None,compression='infer',thousands=None,decimal=b'.',lineterminator=None,quotechar='"',quoting=0,escapechar=None,comment=None,encoding=None,dialect=None,tupleize_cols=None,error_bad_lines=True,warn_bad_lines=True,skipfooter=0,doublequote=True,delim_whitespace=False,low_memory=True,memory_map=False,float_precision=None) 常用引數解釋:read_csv與read_table常用的引數(更多引數檢視官方手冊): filepath_or_buffer#需要讀取的檔案及路徑 sep/delimiter列分隔符,普通文字檔案,應該都是使用結構化的方式來組織,才能使用dataframe header檔案中是否需要讀取列名的一行,header=None(使用names自定義列名,否則預設0,1,2,...),header=0(將首行設為列名) names如果header=None,那麼names必須制定!否則就沒有列的定義了。

shkiprows=10#跳過前十行 nrows=10#只去前10行 usecols=[0,...]#需要讀取的列,可以是列的位置編號,也可以是列的名稱 parse_dates=['col_name']#指定某行讀取為日期格式 index_col=None/False/0,重新生成一列成為index值,0表示第一列,用作行索引的列編號或列名。

可以是單個名稱/數字或由多個名稱/數宇組成的列表(層次化索引) error_bad_lines=False#當某行資料有問題時,不報錯,直接跳過,處理髒資料時使用 na_values='NULL'#將NULL識別為空值 encoding='utf-8'#指明讀取檔案的編碼,預設utf-8 讀取csv/txt/tsv檔案,返回一個DataFrame型別的物件。

舉例: importpandasaspd data=pd.read_csv('F:/Zhu/test/test.csv') print(data) nameagebirth 0zhu202000.1.5 1wang202000.6.18 2zhang211999.11.11 3zhu221998.10.24 pandas用iloc,loc提取資料 提取行資料: loc函式:通過行索引“Index”中的具體值來取行資料(如取"Index"為"A"的行) iloc函式:通過行號來取行資料(如取第2行的資料) importpandasaspd importnumpyasnp #建立一個Dataframe data=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD')) print(data) ABCD a0123 b4567 c891011 d12131415 loc提取'a'的行: print(data.loc['a']) A0 B1 C2 D3 Name:a,dtype:int32 iloc提取第2行: print(data.iloc[2]) A8 B9 C10 D11 Name:c,dtype:int32 提取列資料: print(data.loc[:,['A']])#取'A'列所有行,多取幾列格式為data.loc[:,['A','B']] A a0 b4 c8 d12 print(data.iloc[:,[0]]) A a0 b4 c8 d12 提取指定行,指定列: print(data.loc[['a','b'],'B']])#提取index為'a','b',列名為'A','B'中的資料 AB a01 b45 print(data.iloc[[0,1],[0,1]])#提取第0、1行,第0、1列中的資料 AB a01 b45 提取所有行所有列: print(data.loc[:,:])#取A,B,C,D列的所有行 print(data.iloc[:,:]) ABCD a0123 b4567 c891011 d12131415 根據某個指定資料提取行: print(data.loc[data['A']==0])#提取data資料(篩選條件:A列中數字為0所在的行資料) ABCD a0123 二、pandas寫入csv檔案 pandas將多組列表寫入csv importpandasaspd #任意的多組列表 a=[1,3] b=[4,5,6] #字典中的key值即為csv中列名 dataframe=pd.DataFrame({'a_name':a,'b_name':b}) #將DataFrame儲存為csv,index表示是否顯示行名,default=True dataframe.to_csv("test.csv",index=False,') 結果: 如果你想寫入一行,就是你儲存的一個列表是一行資料,你想把這一行資料寫入csv檔案。

這個時候可以使用csv方法,一行一行的寫 importcsv withopen("test.csv","w")ascsvfile: writer=csv.writer(csvfile) #先寫入columns_name writer.writerow(["index","a_name","b_name"]) #寫入一行用writerow #write.writerow([0,2]) #寫入多行用writerows writer.writerows([[0,3],[1,[2,3,4]]) 可以看到,每次寫一行,就自動空行,解決辦法就是在開啟檔案的時候加上引數newline='' importcsv withopen("F:/zhu/test/test.csv","w",newline='')ascsvfile: writer=csv.writer(csvfile) #先寫入columns_name writer.writerow(["index","b_name"]) #寫入多行用writerows writer.writerows([[0,4]]) 寫入txt檔案類似 (1)建立txt資料檔案,建立好檔案記得要關閉檔案,不然讀取不了檔案內容 (2)讀取txt檔案 #讀取txt檔案 file=open("G:\\info.txt",'r',encoding='utf-8') userlines=file.readlines() file.close() forlineinuserlines: username=line.split(',')[0]#讀取使用者名稱 password=line.split(',')[1]#讀取密碼 print(username,password) 三、pandas檢視資料表資訊 1)檢視維度:data.shape importpandasaspd data=pd.read_csv('F:/Zhu/test/test.csv') print(data) print(data.shape) indexa_nameb_name 0013 1123 2234 (3,3) 2)檢視資料表基本資訊:data.info importpandasaspd data=pd.read_csv('F:/Zhu/test/test.csv') print(data) print(data.info) indexa_nameb_name 0013 1123 2234 3)檢視每一行的格式:data.dtype importpandasaspd data=pd.read_csv('F:/Zhu/test/test.csv') print(data.dtypes) indexint64 a_nameint64 b_nameint64 dtype:object 4)檢視前2行資料、後2行資料 df.head()#預設前10行資料,注意:可以在head函式中填寫引數,自定義要檢視的行數 df.tail()#預設後10行資料 importpandasaspd data=pd.read_csv('F:/Zhu/test/test.csv') print(data) print(data.head(2)) print(data.tail(2)) indexa_nameb_name 0013 1123 2234 indexa_nameb_name 0013 1123 indexa_nameb_name 1123 2234 四、資料清洗 1)NaN數值的處理:用數字0填充空值 data.fillna(value=0,inplace=True) 注意:df.fillna不會立即生效,需要設定inplace=True 2)清除字元欄位的字元空格 字串(str)的頭和尾的空格,以及位於頭尾的\n\t之類給刪掉 data['customername']=data['customername'].map(str.strip)#如清除customername中出現的空格 3)大小寫轉換 data['customername']=data['customername'].str.lower() 4)刪除重複出現的值 data.drop_duplicates(['customername'],inplace=True) 5)資料替換 data['customername'].replace('111','qqq',inplace=True) 參考: 《Python之pandas簡介》 《Pandas中loc和iloc函式用法詳解(原始碼+例項)》 到此這篇關於python讀寫資料讀寫csv檔案(pandas用法)的文章就介紹到這了,更多相關python讀寫csv內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們! python讀寫csvpython讀寫資料 python中time、datetime模組的使用 «上一篇 Pandas中DataFrame交換列順序的方法實現 下一篇» 相關推薦 .NET垃圾回收器原理及使用EntityFrameworkCore工具使用命令列js的Map函式使用方法詳解關於指令重排現象的兩個階段詳解shell程式設計入門之變數,字串,陣列,函式使用方法總結.NET正則表示式最佳用法WPF使用AForge呼叫攝像頭JS跨域之window.name實現的跨域資料傳輸 搜尋 熱門文章 AF&SD 2019-12-25 iOS自動釋放池autoreleasepool(二) 2019-12-25 Flutter-生命週期 2019-12-25 ADS 基礎教學 Mysql入門 Sql入門 Android入門 Docker入門 Go語言入門 Ruby程式入門 Python入門 Python進階 Django入門 Python爬蟲入門 PHP技巧 ADS 人氣文章 Flutter-生命週期 2019-12-25 iOS自動釋放池autoreleasepool(二) 2019-12-25 AF&SD 2019-12-25 iOS的OC的方法的決議與訊息轉發原理 2020-06-24 window.location.href的使用 2020-06-22 .NET垃圾回收器原理及使用 2022-01-30 WWDC20前你應該知道的Swift新特性:callAsFunction 2020-06-24 C#轉義符 2020-06-22 EntityFrameworkCore工具使用命令列 2022-01-31 fastlane的使用及檔案編寫 2020-06-24 熱門標籤 JavaPython演算法vuewin10JavaScriptMySQLC++jsAndroidiOSSpring資料結構C語言資料庫前端springbootC#筆記字串 ADS



請為這篇文章評分?