使用Excel檔案建立資料框


什麼是資料框?

資料框是一個二維物件,用於以表格格式儲存資料,其中資料排列在行和列中。可以使用多種方法建立資料框,最常見的方法之一是從Excel檔案匯入資料。本文件將重點介紹如何在Python中逐步使用Excel檔案建立資料框。

為什麼資料框對資料分析很重要?

資料框對資料分析很重要,原因如下:

  • 易於閱讀和操作 - 資料框是一種二維表格狀資料結構,允許輕鬆組織和操作資料。它們旨在處理複雜的資料操作,並且可以處理包含缺失值或不同資料型別的資料。

  • 高效的資料處理 - 資料框可用於高效處理大型資料集。它們旨在支援向量化操作,可以一次對整個資料陣列執行計算,而不是逐行或逐列迭代。

  • 與其他庫的整合 - 資料框廣泛用於Python的資料分析和科學計算庫,例如Pandas、NumPy、Matplotlib和Scikit-learn。它們可以輕鬆地與這些庫整合,以執行各種任務,例如資料清洗、視覺化和機器學習。

  • 資料探索和視覺化 - 資料框提供了一套強大的工具來探索和視覺化資料。它們允許輕鬆過濾、排序和分組資料,並且可以用於建立各種視覺化效果,包括直方圖、散點圖和熱圖。

總的來說,資料框是資料分析中必不可少的工具,可以大大簡化處理大型和複雜資料集的過程。

先決條件

在我們深入研究任務之前,需要在您的系統上安裝一些東西:

推薦設定列表:

  • pip install pandas, openpyxl

  • 預計使用者可以使用任何獨立的IDE,例如VS-Code、PyCharm、Atom或Sublime text。

  • 也可以使用線上Python編譯器,例如Kaggle.com、Google Cloud Platform或任何其他編譯器。

  • 更新版本的Python。在撰寫本文時,我使用了3.10.9版本。

  • Jupyter Notebook的使用知識。

  • 虛擬環境的知識和應用將是有益的,但不是必需的。

  • 還預計使用者對統計學和數學有很好的理解。

步驟1:匯入庫

在開始之前,我們需要在Python中匯入必要的庫。我們將使用pandas,一個開源資料操作庫來操作Excel檔案。使用以下程式碼匯入pandas:

import pandas as pd

步驟2:從Excel檔案讀取資料

要使用Excel檔案建立資料框,我們首先需要從Excel檔案讀取資料。我們可以藉助pandas提供的read_excel()函式來實現。此函式可以讀取.xls和.xlsx格式的資料。

基本建立和讀取

要建立一個只有一個工作表excel檔案,我們可以建立一個數據框。要從Excel檔案的單個工作表讀取資料,您可以簡單地將Excel檔案的名稱以及工作表名稱或索引傳遞給read_excel()函式,如下所示:

示例

# create a sample excel file with 2 columns and 5 rows and 3 sheets
import pandas as pd
df1 = pd.DataFrame({'Name': ['John', 'Smith', 'Alex', 'James', 'Peter'],
                        'Age': [25, 30, 27, 22, 32]})
df2 = pd.DataFrame({'Name': ['John', 'Smith', 'Alex', 'James', 'Peter'],
                        'Age': [25, 30, 27, 22, 32]})
df3 = pd.DataFrame({'Name': ['John', 'Smith', 'Alex', 'James', 'Peter'],
                        'Age': [25, 30, 27, 22, 32]})
with pd.ExcelWriter('sample.xlsx') as writer:
   df1.to_excel(writer, sheet_name='Sheet1', index=False)
   df2.to_excel(writer, sheet_name='Sheet2', index=False)
   df3.to_excel(writer, sheet_name='Sheet3', index=False)
# import the excel file
import pandas as pd
df = pd.read_excel('sample.xlsx', sheet_name='Sheet1')
print(df)

輸出

其中filename是excel檔案的路徑,df是資料框的名稱。

...        Name      Age
  0        John      25
  1        Smith     30
  2        Alex      27
  3        James     22
  4        peter     32

如果您想從工作表中讀取特定範圍的行和列,可以使用可選引數'header'(指定用作列標題的行數)和'usecols'(指定要讀取的列),如下所示:

df = pd.read_excel('filename.xlsx', sheet_name='Sheet1', header=0, usecols='A:C')

以上程式碼將讀取Sheet1的前三列(A, B, C),第一行作為標題。

讀取多個工作表

有時您可能需要從多個工作表讀取資料。為此,您可以將工作表名稱作為列表傳遞給read_excel()函式,如下所示:

示例

df1 = pd.read_excel('filename.xlsx', sheet_name=['Sheet1', 'Sheet2'])
print (df1)

以上程式碼將從Sheet1和Sheet2讀取資料。

輸出

           Name      Age
  0        John      25
  1        Smith     30
  2        Alex      27
  3        James     22
  4        peter     32
           Name      Age
  0        John      25
  1        Smith     30
  2        Alex      27
  3        James     22
  4        peter     32

從多個Excel檔案讀取資料

要從多個Excel檔案讀取資料,可以使用glob模組中的glob()函式。glob函式搜尋與指定模式匹配的所有檔案,並返回檔名列表。使用以下程式碼匯入glob模組:

import glob

匯入glob模組後,使用以下程式碼從資料夾中的所有Excel檔案讀取資料:

path = r'folder_path/*.xlsx'
files = glob.glob(path)
dfs = []
for file in files:
   data = pd.read_excel(file, sheet_name='Sheet1')
   dfs.append(data)
df = pd.concat(dfs, ignore_index=True)

以上程式碼將讀取folder_path目錄中所有副檔名為.xlsx的Excel檔案的資料。

步驟3:資料清洗和處理

現在我們已經從Excel檔案讀取了資料,我們可以執行各種資料清洗和處理操作來準備用於分析的資料。一些常見的資料清洗操作包括刪除重複項、處理缺失值、刪除無關列等。

刪除重複項

要從資料框中刪除重複項,我們可以使用pandas提供的drop_duplicates()函式。

示例

使用以下程式碼從資料框中刪除重複項:

import pandas as pd
df = pd.DataFrame({'Name': ['John', 'Smith', 'Alex', 'James', 'Peter', 'John', 'Smith', 'Alex', 'James', 'Peter'],
   'Age': [25, 30, 27, 22, 32, 25, 30, 27, 22, 32]})                                   
print(df) 

輸出

           Name      Age
  0        John      25
  1        Smith     30
  2        Alex      27
  3        James     22
  4        peter     32
  5        John      25
  6        Smith     30
  7        Alex      27
  8        James     22
  9        peter     32

示例

df.drop_duplicates(inplace=True)
print(df)

輸出

           Name      Age
  0        John      25
  1        Smith     30
  2        Alex      27
  3        James     22
  4        peter     32

以上程式碼將刪除資料框中的所有重複行。

處理缺失值

要處理資料框中的缺失值,我們可以使用pandas提供的各種函式,例如isnull()、fillna()和dropna()。

  • isnull() - 此函式用於檢查缺失值。使用以下程式碼檢查缺失值:

df.isnull().sum()

以上程式碼將返回資料框中每列缺失值的總數。

  • dropna() - 此函式用於刪除包含缺失值的行。使用以下程式碼刪除至少包含一個缺失值的所有行:

df.dropna(inplace=True)

以上程式碼將從資料框中刪除至少包含一個缺失值的所有行。

  • fillna() - 此函式用於使用指定值填充缺失值。使用以下程式碼將所有缺失值填充為0:

df.fillna(0, inplace=True)

以上程式碼將資料框中的所有缺失值填充為0。

刪除無關列

要從資料框中刪除無關列,我們可以使用pandas提供的drop()函式。使用以下程式碼刪除名為'column1'的列:

df.drop('column1', axis=1, inplace=True)

以上程式碼將刪除資料框中名為'column1'的列。

結論

本文件討論瞭如何在Python中使用Excel檔案建立資料框。我們涵蓋了各種方面,例如從Excel檔案讀取資料、處理缺失值和刪除重複項。這些知識可以應用於現實世界的場景,例如從各種來源匯入資料進行分析。

更新於:2023年4月25日

4K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.