python讀寫資料讀寫csv檔案(pandas用法) - 程式人生
文章推薦指數: 80 %
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
延伸文章資訊
- 1Python 如何讀寫CSV 與合併CSV檔案. CSV是 ... - Medium
要透過Python寫入資料並生成CSV檔案,一樣需要引入csv套件,並且建立writer物件來 ... 以七月份的銷售(sales07.csv)為例,檔案格式如下:欄位的標題 ...
- 2如何在Python|中讀取CSV檔CSV 檔案讀取和寫入 - LearnCode01
下載CSV 資料Python CSV 模組Python 提供了一個CSV 模組來處理CSV 檔。 ... csv.field_size_limit – 傳回最大欄位大小; csv.get_dia...
- 32022python讀取csv特定欄位-大學國高中升學考試資訊
2022python讀取csv特定欄位-大學國高中升學,精選在PTT/MOBILE01/Dcard資訊討論,找python讀取csv特定欄位,python write csv換行,python輸...
- 4[Day 04] CSV 讀寫操作 - iT 邦幫忙
The csv module 's reader and writer objects read and write sequences. ... 來說,csv需要第一行一行header來定義有...
- 5如何在Python 中把列表寫入CSV
可以使用Python 列表值來編寫csv 檔案。像csv.writer()、writerow()、pandas 和numpy 庫這樣的方法都是用於這個目的的。