使用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檔案。

更新於:2023年4月25日

4K+ 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告