python處理csv數據
A. 怎麼用python讀取csv數據
python 自帶 csv 框架。
#讀取csv文件
importcsv
withopen('some.csv','rb')asf:#採用b的方式處理可以省去很多問題
reader=csv.reader(f)
forrowinreader:#dosomethingwithrow,suchasrow[0],row[1]
importcsv
withopen('some.csv','wb')asf:#採用b的方式處理可以省去很多問題
writer=csv.writer(f)
writer.writerows(someiterable)
B. 1 如何用Python導入Excel以及csv數據集
Excel是一個二進制文件,它保存有關工作簿中所有工作表的信息
CSV代表Comma Separated Values 。這是一個純文本格式,用逗號分隔一系列值
Excel不僅可以存儲數據,還可以對數據進行操作
CSV文件只是一個文本文件,它存儲數據,但不包含格式,公式,宏等。它也被稱為平面文件
Excel是一個電子表格,將文件保存為自己的專有格式,即xls或xlsx
CSV是將表格信息保存為擴展名為.csv的分隔文本文件的格式
保存在excel中的文件不能被文本編輯器打開或編輯
CSV文件可以通過文本編輯器(如記事本)打開或編輯
excel中會有若干個表單,每個表單都會這些屬性:
行數(nrows) 列數(ncols) 名稱(name) 索引(number)
import xlrd //執行操作前需要導入xlrd庫
#讀取文件
excel = xlrd.open_workexcel("文件地址") //這里表格名稱為excel,文件的地址可以從文件的屬性中看到
#讀取表格表單數量
sheet_num= excel.nsheets // sheet_num為變數,其值為表格表單數量
#讀取表格表單名稱
sheet_name = excel.sheet_names() // sheet_name為變數,其值為表格表單名稱
#如果想要看到上述兩個變數,可以使用print()函數將它們列印出來
#想要讀取某個表單的數據,首先獲取表單 excel.sheet_by_index(0)
//表單索引從0開始,獲取第一個表單對象 excel.sheet_by_name('xxx')
// 獲取名為」xxx」的表單對象 excel.sheets()
// 獲取所有的表單對象 獲取單元格的內容:使用cell_value 方法 這里有兩個參數:行號和列號,用來讀取指定的單元格內容。
第一行的內容是:sheet.row_values(rowx=0)
第一列的內容是:sheet.col_values(colx=0)
CSV是英文Comma Separate Values(逗號分隔值)的縮寫,文檔的內容是由 「,」 分隔的一列列的數據構成的。在python數據處理中也經常用到。
import csv //執行操作前需要導入csv庫
#csv讀取
遍歷其中數據 csv_file = csv.reader(open(『文件地址』,』r』)) for x in csv_file print(x)
C. 如何用python把多個csv文件數據處理後匯總到新csv文件
可以用pandas讀取數據,首先把文件方同一個文件價里,然後對當前文件價的所有內容循環讀取,在對讀取到的數據處理一下,判斷大於1000米的個數,大循環外面定義兩廣序列,存放文件名和個數,大循環結束後將兩廣數組組成Dataframe保持到一個新csv里,思路大概是這樣。不明白的可以繼續問。
D. 用python處理csv文件,最好可以將裡面的文本信息轉成一個二維數組的形式,具體如下
思路如下:
導入csv庫;
打開文件,並用csv庫函數reader讀入數據;
csv讀入的數據是一行一行的,所以通過循環語句把讀到的數據放入到數組里
importcsv#必要庫導入
filepath='test.csv'#定義文件名稱,本文件要與當前的.py文件要在同一文件夾下,不然要用絕對路徑
withopen(filepath,'r')ascsvfile:#打開數據文件
reader=csv.reader(csvfile)#用csv的reader函數讀取數據文件
header=next(reader)#讀取數據文件的表頭
data=[]#定義一個空數組用於保存文件的數據
forlineinreader:#循環讀取數據文件並保存到數組data中
data.append(line)#line是個一維數組,是數據文件中的一行數據
print(header)#表頭
print(data)#讀取的二維數組
E. Python csv庫整理(部分)
近期,筆者到一些數據競賽網站進行觀察學習,發現很多數據是以csv文件處理的(廢話).因而,磨刀不誤砍柴工,筆者先對Python的csv庫進行學習.
csv模塊實現了CSV格式表單數據的讀寫.這可以以一個兼容Excel的方式讀寫其數據文件,csv模塊中的reader和writer類被用來讀寫序列化的數據.也可以使用DictReader類和DictWriter類以字典的方式讀取數據.
返回一個reader對象,該對象逐行遍歷csvfile(文件和列表均適用,但是文件的話應該newline=''.
默認每一行讀取一個字元串組成的列表(而非數值,除非修改QUOTE_NONUMERIC).
返回一個writer對象,負責將數據在給定的文件類對象上轉換成帶分隔符的字元串.csvfile(只要該對象有write()方法,文件的話應該newline=''.)
這兩個方法可以把name字元串和dialect關聯/脫鉤.dialect可以是Dialect的子類,或者fmtparams的關鍵字參數.
返回一個Dialect對象為name的變種,若其未注冊,拋出Error.
返回已經注冊的所有變種的 名稱
返回當前解析器允許的最大欄位大小,如果制定了參數,參數將成為新的最大欄位大小.
該對象操作上類似reader,但是把每行中的信息映射到一個字典,字典的鍵由fieldnames給出
fieldname的參數是一個序列sequence [1] ,如果參數預設,默認第一行的值作為欄位名.
如果某一行中的欄位多於欄位名(比如說約定有5項屬性,但是這一行卻出現了6個數據),則其餘欄位將放入列表中,欄位名由 restkey 指定(默認為 None)。如果非空白行的欄位少於欄位名,則缺少的值將用 None 填充。
#其實這玩意應該就跟各種填表裡面的備注用法差不多.
3.8中返回的行是dict類型.
該對象操作上類似reader,但是把每行中的信息映射到一個字典,字典的鍵由fieldnames給出,fieldname參數是不可預設的.restval用來指定字典缺少鍵的時候要寫入的值.extrasaction用於指定關鍵鍵在fieldname中找不到的情況的處理機制.'raise'引發ValueError,而'ignore'則會被忽略.
這個類被用來瑞段csv文件的格式
以下諸類均在括弧中標注了在其變種注冊表中的名稱
定義了Excel生成的csv文件的常規屬性.('excel')
定義了Excel生成的,tab分割的csv文件的常規屬
性.('excel-tab')
定義了UNIX系統上生成的csv文件的常規屬性('unix'):
任意可能發生的csv庫函數錯誤.
參考鏈接
Python3.8.2文檔中關於csv庫的相關文檔
F. Python之csv模塊
csv文件具有格式簡單,快速存取,兼容性好等特點,工程、金融、商業等很多數據文件都是採用csv文件保存和處理。工作中數據處理也用到了csv,簡要總結下使用經驗,特別是那些由於本地兼容性導致的與官方文檔的差異使用。
csv(comma Seperated Values)文件的格式非常簡單,類似一個文本文檔,每一行保存一條數據,同一行中的各個數據通常採用逗號(或tab)分隔。
python自帶了csv模塊,專門用於處理csv文件的讀取和存檔。
csv模塊中,主要由兩種方式存取csv文件:函數方法;類方法。
csv.reader(csvfile,dialect ='excel',** fmtparams)
返回一個reader對象,它將迭代給定csvfile中的行。
csvfile可以是任何支持迭代器協議的對象,並在每次next()調用其方法時返回一個字元串- 文件對象和列表對象都是合適的。如果csvfile是一個文件對象,那麼它必須在平台上以「b」標志打開,這會產生影響。可以給出可選的 dialect 參數,該參數用於定義特定於CSV方言的一組參數。它可以是類的子類的實例,也可以是函數Dialect返回的字元串之一 list_dialects()。其他可選的fmtparams可以給出關鍵字參數來覆蓋當前方言中的各個格式參數。
csv.writer(csvfile,dialect ='excel',** fmtparams)
返回一個編寫器對象,負責將用戶的數據轉換為給定的類文件對象上的分隔字元串。
csvfile可以是帶有write()方法的任何對象 。如果csvfile是一個文件對象,那麼它必須在平台上以「b」標志打開,這會產生影響。 可以給出可選的dialect參數,該參數用於定義特定於CSV方言的一組參數。它可以是類的子類的實例,也可以是函數Dialect返回的字元串之一 list_dialects()。可以給出其他可選的fmtparams關鍵字參數來覆蓋當前dialect中的各個格式參數。
class csv.DictReader(f,fieldnames = None,restkey = None,restval = None,dialect ='excel',* args,** kwds)
創建一個像常規閱讀器一樣操作的對象,但將讀取的信息映射到一個dict,其鍵由可選的 fieldnames 參數給出。 欄位名 的參數是一個序列,其元素與輸入數據的順序中的欄位相關聯。這些元素成為結果字典的關鍵。如果省略 fieldnames 參數,則文件 f 的第一行中的 值 將用作欄位名。如果讀取的行包含的欄位多於欄位名序列,則將剩餘數據添加 為由restkey 值鍵入的序列。如果讀取的行的欄位數少於欄位名序列,則其餘的鍵將採用可選的 restval 參數的值。任何其他可選或關鍵字參數都將傳遞給基礎 reader 實例。
class csv.DictWriter(f,fieldnames,restval ='',extrasaction ='raise',dialect ='excel',* args,** kwds)
創建一個像常規編寫器一樣操作的對象,但將字典映射到輸出行。的欄位名的參數是一個序列識別在哪些值在傳遞給字典中的順序按鍵的writerow()方法被寫入到文件˚F。如果字典缺少欄位名中的鍵,則可選的restval參數指定要寫入的值。如果傳遞給方法的字典包含在欄位名中找不到的鍵,則可選的extrasaction參數指示要採取的操作。如果設置為a 則被提升。如果設置為writerow()'raise'ValueError'ignore',字典中的額外值將被忽略。任何其他可選或關鍵字參數都將傳遞給基礎 writer實例。
請注意,與DictReader類不同,它的fieldnames參數DictWriter不是可選的。由於Python的dict 對象沒有排序,因此沒有足夠的信息來推斷應該將行寫入文件f的順序。