前期文章連結:
霍夫變換——形狀特徵提取算法:車道線檢測
開源自動駕駛汽車數據集
基於深度學習和神經網絡的重要基礎及方法概要
深度學習背後的數學思想
Tensorflow2實現YOLOv3目標檢測
目標檢測入門開篇:YOLOv3快速訓練高速路段車輛數據
YOLOv3論文
https://arxiv.org/pdf/1804.02767.pdf
正文:
有許多方法可以在Python中讀寫CSV文件。有幾種不同的方法,例如,您可以使用Python的內置open()函數來讀取CSV(逗號分隔值)文件,或者可以使用Python的專用csv模塊來讀取和寫入CSV文件。根據您的用例,您還可以使用Python的Pandas庫讀取和寫入CSV文件。
在本文中,您將看到如何使用Python的Pandas庫讀取和寫入CSV文件。但是,在此之前,讓我們簡要地看看什麼是CSV文件。
什麼是CSV文件?CSV文件只不過是一個簡單的文本文件。但是,這是存儲表格數據的最常見,最簡單和最簡單的方法。這種特定格式通過遵循分為行和列的特定結構來排列表。這些行和列包含您的數據。每行都以新行終止,以開始下一行。同樣,逗號(也稱為定界符)分隔每行中的列。
以下表為例:
| City | State | Capital | Population |
| -- | -- | -- | --- |
| Philadelphia | Pennsylvania | No | 1.581 Million |
| Sacramento | California | Yes | 0.5 Million |
| New York | New York | No | 8.623 Million |
| Austin | Texas | Yes | 0.95 Million |
| Miami | Florida | No | 0.463 Million |
現在,如果我們以CSV格式表示,則上表將如下所示:
City, State, Capital, Population
Philadelphia, Pennsylvania, No, 1.581 Million
Sacramento, California, Yes, 0.5 Million
New York, New York, No, 8.623 Million
Austin, Texas, Yes, 0.95 Million
Miami, Florida, No, 0.463 Million
如您所見,逗號將每一行中的列中的所有值分隔開。但是,您也可以使用其他符號(例如,分號(;))作為分隔符。表格的每一行都會變成CSV文件的新行。CSV格式的核心目的是幫助您緊湊簡潔地呈現表格數據。
既然您已經了解了什麼是CSV文件,那麼該研究一下如何使用Pandas的read_csv()方法讀取Python中的CSV文件了。
使用熊貓讀取和寫入CSV文件Pandas是一個非常強大且流行的數據分析和處理框架。熊貓最引人注目的功能之一就是它具有讀寫各種類型的文件(包括CSV和Excel)的能力。您可以使用read_csv()和功能,輕鬆有效地在熊貓中操作CSV文件to_csv()。
安裝熊貓在使用框架之前,我們必須先安裝Panda。安裝Pandas的最簡單方法之一就是安裝Anaconda。它是跨平臺的Python發行版,用於執行Python計算和數據分析之類的任務。一旦安裝了Anaconda,您將無需任何其他操作即可訪問Pandas和其他庫(例如SciPy和NumPy)。
此外,您還可以通過pip installer安裝Pandas,如下所示:
$ pip install pandas
使用read_csv()讀取CSV文件完成安裝後,您可以使用該read_csv()功能讀取CSV文件。我們將嘗試讀取「 titanic.csv」文件,該文件可以從此連結下載。
首先,我們必須導入Pandas庫:
import pandas as pd
現在,我們使用以下代碼行實際讀取和解析文件:
titanic_data = pd.read_csv('titanic.csv')
當我們執行此代碼時,它將從當前目錄讀取CSV文件「 titanic.csv」。您可以從上面的腳本中看到,要讀取CSV文件,您必須將文件路徑傳遞給read_csv()Pandas庫的方法。read_csv()然後,該方法返回一個包含CSV文件數據的Pandas DataFrame。
您可以通過head()Pandas DataFrame的方法顯示CSV文件的前五行,如下所示:
titanic_data.head()
輸出:
您還可以通過簡單地將資源的URL傳遞給read_csv()方法來從在線資源中讀取CSV文件。讓我們閱讀位於遠程GitHub存儲庫上的「 titanic.csv」文件。
import pandas as pd
titanic_data = pd.read_csv(r'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
默認情況下,該read_csv()方法將CSV文件第一行中的值視為列標題。但是,您可以在通過以下read_csv()方法讀取文件時傳遞自定義標頭名稱:
import pandas as pd
col_names = ['Id',
'Survived',
'Passenger Class',
'Full Name',
'Gender',
'Age',
'SibSp',
'Parch',
'Ticket Number',
'Price', 'Cabin',
'Station']
titanic_data = pd.read_csv(r'D:\Datasets\titanic.csv', names=col_names, header=None)
要讀取帶有自定義標題的CSV文件,您需要將自定義列名稱的列表傳遞給方法的names屬性read_csv()。如果要覆蓋默認的標頭名稱,則可以傳遞header=None關鍵字參數。
現在,讓我們看一下在上一個示例中讀取的「 titanic.csv」文件的標題名稱。
titanic_data.head()
輸出:
在這裡,您可以在DataFrame的輸出中看到自定義標頭。
使用to_csv()編寫CSV文件通過熊貓創建或寫入CSV文件的過程可能比讀取CSV稍微複雜一些,但仍然相對簡單。我們使用該to_csv()函數來執行此任務。但是,您必須先創建一個Pandas DataFrame,然後將其寫入CSV文件。
列名也可以通過關鍵字參數指定,也可以通過參數指定columns不同的分隔符sep。同樣,默認定界符為逗號「,」。
這是一個簡單的示例,顯示了如何通過以下方式將DataFrame導出到CSV文件to_csv():
import pandas as pd
city = pd.DataFrame([['Sacramento', 'California'], ['Miami', 'Florida']], columns=['City', 'State'])
city.to_csv('city.csv')
在上面的示例中,我們創建了一個名為的DataFrame city。隨後,我們使用該to_csv()函數將該DataFrame寫入了名為「 city.csv」的文件中。生成的CSV文件應具有以下內容:
City,State
Sacramento,California
Miami,Florida
CSV文件包含我們的自定義標頭,後跟我們創建的DataFrame中包含的兩行數據。
結論本文介紹了如何使用Python的Pandas庫讀取和寫入CSV文件。要讀取CSV文件,請read_csv()使用Pandas庫的方法。您還可以通過方法的names屬性在讀取CSV文件時傳遞自定義標題名稱read_csv()。最後,要使用Pandas編寫CSV文件,您首先必須創建一個Pandas DataFrame對象,然後to_csv在DataFrame上調用方法。