搜尋
首頁後端開發Python教學使用Python來解析電子表格數據

處理大型組織和企業中常見的電子表格數據,並將其導入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
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適用於自動化測試和系統管理等任務。

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

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

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

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

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

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

Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Apr 02, 2025 am 07:12 AM

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

如何提高jieba分詞在景區評論分析中的準確性?如何提高jieba分詞在景區評論分析中的準確性?Apr 02, 2025 am 07:09 AM

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

如何使用正則表達式匹配到第一個閉合標籤就停止?如何使用正則表達式匹配到第一個閉合標籤就停止?Apr 02, 2025 am 07:06 AM

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

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

mPDF

mPDF

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

MantisBT

MantisBT

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

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

記事本++7.3.1

記事本++7.3.1

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