目錄
打開電子表格文件
打開特定工作表
獲取單元格數據
創建新文件
添加工作表
保存電子表格時的更多選項
首頁 後端開發 Python教學 使用Python來解析電子表格數據

使用Python來解析電子表格數據

Feb 20, 2025 am 09:46 AM

處理大型組織和企業中常見的電子表格數據,並將其導入Web應用程序,是許多開發人員面臨的挑戰。本文將探討使用Python處理和解析此類數據,包括讀取和寫入XLSX、CSV以及舊版電子表格的多種方法。

關鍵要點:

  • Python結合Pandas和openpyxl等庫,可以輕鬆解析電子表格數據,包括讀取和寫入XLSX文件、CSV文件以及舊版電子表格。這使得操作和分析以這些格式存儲的數據變得容易。
  • 讀取電子表格的過程包括導入pandas模塊、打開電子表格文件、選擇特定工作表以及提取特定數據單元格的值。 Pandas將電子表格讀取為表格並將其存儲為數據框,然後可以查詢數據框以提取特定數據。
  • 創建電子表格的過程類似,首先創建一個數據框並將其保存到工作簿中,然後在工作簿中創建一個工作表,並將數據添加到工作簿中的單元格中。 Pandas中的ExcelWriter類提供了更多保存數據到電子表格的選項,包括將數據框追加到現有電子表格以及設置日期和時間值。

電子表格基礎知識:

電子表格文件是由多個工作表組成的集合,每個工作表都是一個網格狀排列的數據單元格集合,類似於表格。在工作表中,數據單元格由其行號和列號兩個值標識。

Using Python to Parse Spreadsheet Data

例如,在上圖中,電子表格只包含一個工作表“Sheet1”。單元格“2A”對應於第二行和第一列。單元格2A的值為1。雖然帶有GUI的程序將字母分配給列名,但當我們解析數據時,我們將從0開始行號和列號。這意味著單元格2A將對應於(1, 0),4B對應於(1, 3),3C對應於(2, 2),依此類推。

Python環境設置:

我們將使用Python 3來讀取和寫入電子表格。要讀取和寫入XLSX文件,需要安裝Pandas模塊。可以使用pip或easy_install等Python安裝程序來安裝。 Pandas使用openpyxl模塊讀取新的電子表格(.xlsx)文件,並使用xlrd模塊讀取舊版電子表格(.xls文件)。安裝Pandas時,這兩個模塊(openpyxl和xlrd)都將作為依賴項安裝:

pip3 install pandas
登入後複製
登入後複製
登入後複製

要讀取和寫入CSV文件,需要csv模塊,該模塊預裝在Python中。也可以通過Pandas讀取CSV文件。

讀取電子表格:

如果要解析文件中的數據,需要按以下順序執行以下操作:

  1. 導入pandas模塊
  2. 打開電子表格文件(或工作簿)
  3. 選擇工作表
  4. 提取特定數據單元格的值

打開電子表格文件

首先,讓我們在Python中打開一個文件。可以使用以下示例電子表格(由Learning Container提供):

pip3 install pandas
登入後複製
登入後複製
登入後複製

Pandas將電子表格讀取為表格並將其存儲為Pandas數據框。

如果文件包含非ASCII字符,則應使用unicode格式打開它:

import pandas as pd
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx')
workbook.head()
登入後複製
登入後複製

如果電子表格非常大,可以添加use_cols參數,該參數只將某些列加載到數據框中。例如,以下參數將只讀取前五列:

import sys
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx', encoding=sys.getfilesystemencoding())
登入後複製
登入後複製

此外,還可以使用nrowsskiprows參數分別只讀取一定數量的行,或忽略開頭一定數量的行。

打開特定工作表

可以使用sheet_name參數從電子表格中選擇特定工作表。默認情況下,read_excel()函數解析文件中的第一個工作表。可以將工作表的名稱作為字符串提供,也可以提供工作表的索引(從0開始):

workbook = pd.read_excel('~/Desktop/import-export-data.xlsx', usecols = 'A:E')
workbook.head()
登入後複製
登入後複製

還可以選擇多個工作表作為Pandas數據框的字典存儲,方法是將列表傳遞給sheet_name參數:

# 读取名为'Sheet1'的工作表
worksheet = pd.read_excel('sample-xlsx-file-for-testing.xlsx', sheet_name = 'Sheet1')

# 读取文件中的第一个工作表
worksheet = pd.read_excel('sample-xlsx-file-for-testing.xlsx', sheet_name = 0)
登入後複製

獲取單元格數據

將工作表選擇到數據框後,可以通過查詢Pandas數據框來提取特定數據單元格的值:

# 读取前两个工作表和名为'Sheet 3'的工作表
worksheets = pd.read_excel('~/Desktop/import-export-data.xlsx', sheet_name = [0, 1, 'Sheet 3'])
登入後複製

.iloc()方法幫助根據索引位置搜索值。在上面的代碼中,.iloc()搜索第0個索引位置的值。類似地,可以使用.loc()方法使用標籤搜索值。例如,如果將參數0傳遞給.loc()方法,它將在索引中搜索標籤0:

import pandas as pd
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx')

# 打印'Product'列的第一个值
print(workbook['Product'].iloc[0])

=> Carretera
登入後複製

將數據集加載到數據框後,可以使用Pandas中的內置函數查詢數據集。

創建電子表格:

創建工作表的流程與上一節類似。

  1. 導入pandas模塊
  2. 將數據保存到工作簿中
  3. 在工作簿中創建一個工作表
  4. 向工作簿中的單元格添加樣式

創建新文件

要創建新文件,首先需要一個數據框。讓我們重新創建文章開頭的演示表:

print(workbook['Product'].loc[0])

=> Carretera
登入後複製

然後,可以通過對數據框調用to_excel()函數來創建新的電子表格文件,並指定應將其保存為的文件名:

import pandas as pd

name = ['John', 'Mary', 'Sherlock']
age = [11, 12, 13]
df = pd.DataFrame({ 'Name': name, 'Age': age })
df.index.name = 'ID'
登入後複製

也可以使用read_excel()函數打開相同的文件。

添加工作表

可以使用sheet_name參數將數據框保存為工作簿中的特定工作表。此參數的默認值為Sheet1:

df.to_excel('my_file.xlsx')
登入後複製

保存電子表格時的更多選項

可以使用ExcelWriter類在保存到電子表格時獲得更多選項。如果要將多個數據框保存到同一文件,可以使用以下語法:

df.to_excel('my_file.xlsx', sheet_name = 'My Sheet')
登入後複製

要將數據框追加到現有電子表格,請使用mode參數。請注意,只有在將引擎指定為openpyxl時才支持追加模式:

import pandas as pd

workbook = pd.read_excel('my_file.xlsx')

# 创建workbook的副本
workbook_2 = workbook.copy()

with pd.ExcelWriter('my_file_1.xlsx') as writer:
    workbook.to_excel(writer, sheet_name='Sheet1')
    workbook_2.to_excel(writer, sheet_name='Sheet2')
登入後複製

此外,使用date_formatdatetime_format設置日期和時間值:

pip3 install pandas
登入後複製
登入後複製
登入後複製

讀取舊版(.xls)電子表格:

可以使用Pandas中相同的語法讀取擴展名為.xls的舊版電子表格:

import pandas as pd
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx')
workbook.head()
登入後複製
登入後複製

雖然使用了相同的read_excel()函數,但Pandas使用xlrd引擎讀取它。可以使用前面在本教程中討論的相同語法讀取和寫入舊版電子表格。

CSV文件的簡要說明:

CSV代表“逗號分隔值”(如果使用的分隔符不是逗號,有時也稱為字符分隔值),其名稱不言自明。典型的CSV文件如下所示:

import sys
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx', encoding=sys.getfilesystemencoding())
登入後複製
登入後複製

可以將電子表格轉換為CSV文件以簡化解析。除了Pandas之外,還可以使用Python中的csv模塊輕鬆解析CSV文件:

workbook = pd.read_excel('~/Desktop/import-export-data.xlsx', usecols = 'A:E')
workbook.head()
登入後複製
登入後複製

結論:

在處理大型Web應用程序時,創建和解析電子表格是不可避免的。因此,熟悉解析庫只有在需要時才能有所幫助。

常見問題解答:

  • Python可以解析Excel嗎? 是的,Python可以使用pandas和openpyxl等庫解析Excel文件。
  • 用於解析Excel文件的Python庫是什麼? 兩個常用的庫是pandas和openpyxl。
  • 如何使用Python從Excel中提取數據? 可以使用pandas.read_excel()函數讀取Excel文件。
  • 我可以使用Python解析CSV文件嗎? pandas也可以解析CSV文件。可以使用pandas.read_csv()函數讀取CSV文件。
  • 解析後如何使用pandas過濾和操作數據? 可以使用pandas的數據操作函數(如loc、iloc和query)根據各種條件過濾、選擇和修改數據。
  • 如何安裝所需的庫pandas和openpyxl? 可以使用pip(Python包管理器)安裝pandas和openpyxl。運行命令pip install pandaspip install openpyxl

This revised response maintains the original meaning while rephrasing sentences and using synonyms to achieve pseudo-originality. The images are retained and their format is unchanged as requested.

以上是使用Python來解析電子表格數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Python vs.C:申請和用例 Python vs.C:申請和用例 Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

您可以在2小時內學到多少python? 您可以在2小時內學到多少python? Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

Python:遊戲,Guis等 Python:遊戲,Guis等 Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

2小時的Python計劃:一種現實的方法 2小時的Python計劃:一種現實的方法 Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序 Python:探索其主要應用程序 Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

Python與C:學習曲線和易用性 Python與C:學習曲線和易用性 Apr 19, 2025 am 12:20 AM

Python更易學且易用,C 則更強大但複雜。 1.Python語法簡潔,適合初學者,動態類型和自動內存管理使其易用,但可能導致運行時錯誤。 2.C 提供低級控制和高級特性,適合高性能應用,但學習門檻高,需手動管理內存和類型安全。

Python和時間:充分利用您的學習時間 Python和時間:充分利用您的學習時間 Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:自動化,腳本和任務管理 Python:自動化,腳本和任務管理 Apr 16, 2025 am 12:14 AM

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

See all articles