處理大型組織和企業中常見的電子表格數據,並將其導入Web應用程序,是許多開發人員面臨的挑戰。本文將探討使用Python處理和解析此類數據,包括讀取和寫入XLSX、CSV以及舊版電子表格的多種方法。
關鍵要點:
- Python結合Pandas和openpyxl等庫,可以輕鬆解析電子表格數據,包括讀取和寫入XLSX文件、CSV文件以及舊版電子表格。這使得操作和分析以這些格式存儲的數據變得容易。
- 讀取電子表格的過程包括導入pandas模塊、打開電子表格文件、選擇特定工作表以及提取特定數據單元格的值。 Pandas將電子表格讀取為表格並將其存儲為數據框,然後可以查詢數據框以提取特定數據。
- 創建電子表格的過程類似,首先創建一個數據框並將其保存到工作簿中,然後在工作簿中創建一個工作表,並將數據添加到工作簿中的單元格中。 Pandas中的ExcelWriter類提供了更多保存數據到電子表格的選項,包括將數據框追加到現有電子表格以及設置日期和時間值。
電子表格基礎知識:
電子表格文件是由多個工作表組成的集合,每個工作表都是一個網格狀排列的數據單元格集合,類似於表格。在工作表中,數據單元格由其行號和列號兩個值標識。
例如,在上圖中,電子表格只包含一個工作表“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文件。
讀取電子表格:
如果要解析文件中的數據,需要按以下順序執行以下操作:
- 導入pandas模塊
- 打開電子表格文件(或工作簿)
- 選擇工作表
- 提取特定數據單元格的值
打開電子表格文件
首先,讓我們在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())
此外,還可以使用nrows
和skiprows
參數分別只讀取一定數量的行,或忽略開頭一定數量的行。
打開特定工作表
可以使用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中的內置函數查詢數據集。
創建電子表格:
創建工作表的流程與上一節類似。
- 導入pandas模塊
- 將數據保存到工作簿中
- 在工作簿中創建一個工作表
- 向工作簿中的單元格添加樣式
創建新文件
要創建新文件,首先需要一個數據框。讓我們重新創建文章開頭的演示表:
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_format
和datetime_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 pandas
和pip 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中文網其他相關文章!

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

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

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

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

如何解決jieba分詞在景區評論分析中的問題?當我們在進行景區評論分析時,往往會使用jieba分詞工具來處理文�...

如何使用正則表達式匹配到第一個閉合標籤就停止?在處理HTML或其他標記語言時,常常需要使用正則表達式來�...


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器