使用CSV檔案建立資料框
在本技術文件中,我們將探討使用Python中的CSV檔案建立資料框的過程。具體來說,我們將涵蓋以下小節:
資料框和CSV檔案的介紹
將CSV檔案讀取到資料框中
探索資料框
操作資料框
將資料框寫入CSV檔案
在整個文件中,我們將使用真實的例子並提供程式碼片段來說明每個小節。
什麼是資料框和CSV檔案?
在深入瞭解從CSV檔案建立資料框的細節之前,讓我們首先定義什麼是資料框以及什麼是CSV檔案。
資料框是一個二維的、大小可變的、表格資料結構,其列可能具有不同的型別。它類似於電子表格或SQL表,通常用於在Python中儲存和操作資料。
另一方面,CSV(逗號分隔值)檔案是一個純文字檔案,它以表格格式儲存資料,每一行代表一個記錄,每一列代表一個欄位。CSV檔案是一種常見的儲存資料的方式,因為它們易於讀取和寫入,並且可以在許多不同的應用程式中開啟,包括Excel和Python。
將CSV檔案讀取到資料框中
從CSV檔案建立資料框的第一步是將檔案讀取到Python中。這可以使用`pandas`庫來完成,該庫提供了一種簡單的方法將CSV檔案讀取為資料框。
語法
import pandas as pd df = pd.read_csv('filename.csv')
在這個例子中,我們首先匯入`pandas`庫,然後使用`pd.read_csv`函式讀取名為`filename.csv`的CSV檔案。生成的`df`物件是一個包含CSV檔案資料的DataFrame。
值得注意的是,`read_csv`函式有很多可選引數,可用於自定義CSV檔案的讀取方式。例如,您可以指定檔案中使用的分隔符(如果它不是逗號)、編碼以及檔案是否包含標題行。
探索資料框
一旦我們將CSV檔案讀取為資料框,我們就可以開始探索和分析資料。一些常見的操作包括:
使用`head`函式檢視資料框的前幾行
使用`shape`屬性檢查資料框的形狀(行數和列數)
使用`describe`函式檢視資料框的彙總統計資訊
使用索引和切片選擇列或行的子集
讓我們看一個例子。假設我們有一個CSV檔案,其中包含有關電影的資訊,包括標題、年份、型別和執行時間。我們可以將檔案讀取為資料框,然後使用`head`函式檢視前幾行
語法
df = pd.read_csv('movies.csv') print(df.head())
這將輸出資料框的前5行
輸出
Title Year Genre Runtime 0 The Shawshank Redemption 1994 Drama 142 1 The Godfather 1972 Crime 175 2 The Godfather: Part II 1974 Crime 202 3 The Dark Knight 2008 Action 152 4 12 Angry Men 1957 Drama 96
我們還可以檢查資料框的形狀
print(df.shape)
要檢視資料框的彙總統計資訊,我們可以使用`describe`函式:
print(df.describe())
這將輸出以下內容:
輸出
Year Runtime count 250.000000 250.000000 mean 1984.356000 118.840000 std 24.012321 23.118059 min 1921.000000 69.000000 25% 1964.000000 100.000000 50% 1995.000000 116.000000 75% 2003.000000 131.000000 max 2016.000000 229.000000
最後,我們可以使用索引和切片選擇列或行的子集。例如,要僅選擇標題和型別列:
示例
subset = df[['Title', 'Genre']] print(subset.head())
輸出
Title Genre 0 The Shawshank Redemption Drama 1 The Godfather Crime 2 The Godfather: Part II Crime 3 The Dark Knight Action 4 12 Angry Men Drama
操作資料框
除了簡單地探索資料外,我們可能還希望以各種方式操作它,例如排序、過濾、合併和透視。在本小節中,我們將使用真實世界的例子介紹一些常見的資料框操作。
排序
要按一個或多個列對資料框進行排序,我們可以使用`sort_values`函式。例如,要按年份降序對我們的電影資料框進行排序:
示例
sorted_df = df.sort_values('Year', ascending=False) print(sorted_df.head())
這將輸出資料框的前5行,按年份降序排序:
輸出
Title Year Genre Runtime 15 Logan 2017 Action 137 127 The Revenant 2015 Adventure 156 117 Whiplash 2014 Drama 107 111 X-Men: Days of Future Past 2014 Action 132 95 The Lego Movie 2014 Animation 100
過濾
要根據一個或多個條件過濾資料框,我們可以使用布林索引。例如,要僅選擇我們電影資料框中的動作片:
示例
subset = df[df['Genre'] == 'Action'] print(subset.head())
這將輸出資料框中的前5部動作片
輸出
Title Year Genre Runtime 3 The Dark Knight 2008 Action 152 6 The Silence of the Lambs 1991 Action 118 7 Inception 2010 Action 148 16 Terminator 2: Judgment Day 1991 Action 137 20 Forrest Gump 1994 Action 142
合併
要將兩個或多個數據框組合成一個數據框,我們可以使用`merge`函式。例如,假設我們有第二個CSV檔案,其中包含我們原始資料框中每部電影的評分。我們可以將此檔案讀取為單獨的資料框,然後根據公共列(在本例中為電影標題)將其與原始資料框合併:
示例
ratings_df = pd.read_csv('ratings.csv') merged_df = pd.merge(df, ratings_df, on='Title') print(merged_df.head())
這將輸出合併後的資料框,其中包含電影資訊和評分資訊
輸出
Title Year Genre Runtime Rating 0 The Shawshank Redemption 1994 Drama 142 9.3 1 The Godfather 1972 Crime 175 9.2 2 The Godfather: Part II 1974 Crime 202 9.0 3 The Dark Knight 2008 Action 152 9.0 4 12 Angry Men 1957 Drama 96 8.9
透視
要透視資料框,我們可以使用`pivot_table`函式。例如,假設我們想檢視按型別劃分的電影平均執行時間。我們可以透視我們原始的電影資料框:
示例
pivot_df = pd.pivot_table(df, values='Runtime', columns='Genre', aggfunc='mean') print(pivot_df)
輸出
這將輸出一個表,顯示按型別劃分的電影平均執行時間
Genre Action Adventure Animation Comedy Crime \ Runtime 126.304348 118.054054 98.250000 107.111111 128.666667 Genre Documentary Drama Family Fantasy Film-Noir \ Runtime 85.333333 126.539326 111.666667 126.300000 105.000000 Genre History Horror Music Musical Mystery \ Runtime 123.375 108.204545 131.133333 121.714286 114.200000 Genre Romance Sci-Fi Sport Thriller War Western Runtime 116.6 121.266667 129.428571 120.046875 134.125 117.833333
將資料框寫入CSV檔案
最後,在我們操作和分析完資料框後,我們可能希望將其寫回CSV檔案以備將來使用。這可以使用`to_csv`函式來完成。
df.to_csv('new_file.csv', index=False)
在這個例子中,我們將資料框寫入一個名為`new_file.csv`的新CSV檔案,其中`index=False`用於從檔案中排除索引列。
結論
在本技術文件中,我們介紹了使用Python中的CSV檔案建立資料框的過程。我們首先定義了什麼是資料框和CSV檔案,然後探討了如何將CSV檔案讀取到資料框中,如何探索和操作資料框以及如何將資料框寫回CSV檔案。使用真實的例子和程式碼片段,我們詳細說明了每個小節。透過掌握本文件中介紹的技術,您將能夠熟練地使用Python中的資料框和CSV檔案。