pandas21 讀csv檔案read_csv(5.文字資料讀寫例項)(詳細 tcy)
阿新 • • 發佈:2018-12-29
例項 2018/12/27
目錄: 第1部分:csv文字檔案讀寫 pandas 讀csv檔案read_csv(1.文字讀寫概要)https://mp.csdn.net/postedit/85289371 pandas 讀csv檔案read_csv(2.read_csv引數介紹)https://mp.csdn.net/postedit/85289928 pandas 讀csv檔案read_csv(3.dtypes指定列資料型別)https://mp.csdn.net/postedit/85290575 pandas 讀csv檔案read_csv(4.to_csv文字資料寫)https://mp.csdn.net/postedit/85290962 pandas 讀csv檔案read_csv(5.文字資料讀寫例項)https://mp.csdn.net/postedit/85291123 pandas 讀csv檔案read_csv(6.命名和使用列)https://mp.csdn.net/postedit/85291430 pandas 讀csv檔案read_csv(7.索引)https://mp.csdn.net/postedit/85291658 pandas 讀csv檔案read_csv(8.方言和分隔符)https://mp.csdn.net/postedit/85291994 pandas 讀csv檔案read_csv(9.浮點轉換和NA值)https://mp.csdn.net/postedit/85292391 pandas 讀csv檔案read_csv(10.註釋和空行)https://mp.csdn.net/postedit/85292609 pandas 讀csv檔案read_csv(11.日期時間處理) https://mp.csdn.net/postedit/85292925 pandas 讀csv檔案read_csv(12.迭代和塊)https://mp.csdn.net/postedit/85293639 pandas 讀csv檔案read_csv(13.read_fwf讀固定寬度資料)https://mp.csdn.net/postedit/85294010 第2部分: pandas hdf檔案讀寫簡要https://mp.csdn.net/postedit/85294299 pandas excel讀寫簡要https://mp.csdn.net/postedit/85294545 第3部分: python中csv模組用法tcy https://mp.csdn.net/postedit/85228189 pandas讀csv檔案read_csv錯誤解決辦法7種https://mp.csdn.net/postedit/85228808 pandas to_string用法https://mp.csdn.net/postedit/85294935
# 例項1:檔案讀 pd.read_csv(r'file.csv') #讀檔案資料;有標題 pd.read_table(r'file.csv',sep=',') #讀檔案資料;有標題 pd.read_csv('file.csv',header=None) #讀檔案資料;無標題 pd.read_csv('file.csv',names=['No','Name']) #讀檔案資料;無標題;設定列名 pd.read_csv('file.csv',names=['No','Name'], index_col='No') #將No列放到索引的位置上
# 例項2:檔案寫
df.to_csv(r'file.csv',index=False) #資料寫入不含索引,含列名,預設逗號分隔
df.to_csv(r'file.csv',index=False,columns=False) #資料寫入不含索引,不含列名,預設逗號分隔
df2.to_csv(r'file.csv') #資料寫入含索引,含列名,預設逗號分隔
# 例項3:正則表示式\s+ data=' No Name Weight\n' \ '0 1001 Tom 20\n' \ '1 1002 Bob 30\n' \ '2 -1003 Jim 40\n' pd.read_csv(StringIO(data), sep=r'\s+')#正則表示式\s+分割不定的空白字元 pd.read_table(r'file_data3.csv',sep=r'\s+') No Name Weight 0 1001 Tom 20 1 1002 Bob 30 2 -1003 Jim 40
# 例項4:處理“壞”行,異形檔案
# 某些檔案欄位太少將在尾隨欄位中填充NA值
# 欄位太多的行預設會引發錯誤
data = 'a,b,c\n1,2,3\n4,5,6,7\n8,9,10'
pd.read_csv(StringIO(data)) #報錯第3行欄位太多
pd.read_csv(StringIO(data), error_bad_lines=False)#跳過壞線:第3行
a b c
0 1 2 3
1 8 9 10
#用usecols消除某些行中出現的無關資料列:
pd.read_csv(StringIO(data), usecols=[0, 1, 2]) #選擇1,2,3列
a b c
0 1 2 3
1 4 5 6
2 8 9 10
# 用skiprows跳過檔案的第一行、第三行:
df4=pd.DataFrame([['#file_data4 writed by tcy shanghai 2018/12/23'],
['No,Name,Weight'],['#skiprows跳過檔案的某一行'],
['1001,Tom,20'],['1002,Bob,30'],['1003,Jim,40']])
df4.to_csv(r'file_data4.csv',header=None,index=False)
# 檔案內容如下:
"""
#file_data4 writed by tcy shanghai 2018/12/23
"No,Name,Weight"
#skiprows跳過檔案的某一行
"1001,Tom,20"
"1002,Bob,30"
"1003,Jim,40
"""
pd.read_csv(r'file_data4.csv',sep=',|\"',skiprows=[0,2],engine='python').dropna(axis=1)
No Name Weight
0 1001 Tom 20
1 1002 Bob 30
2 1003 Jim 40
# 例項5:指定解析器引擎
pandas用C解析器engine='c',如不支回退到Python
1)目前C不支援選項包括:
# sep 除單個字元(如正則表示式分隔符)
# skipfooter
# sep=None 同 delim_whitespace=False
2)應指定engine='python',否則會報警
# 例項6:讀取遠端檔案
# 您可以將URL傳遞給CSV檔案:
df = pd.read_csv('https://download.bls.gov/pub/time.series/cu/cu.item',sep='\t')
# 還會處理S3 URL:
df = pd.read_csv('s3://pandas-test/tips.csv')