Lesen einer Excel-Datei mit Python
-
Lesen einer Excel-Datei mit dem Paket
pandas
in Python -
Lesen einer Excel-Datei mit dem Paket
xlrd
in Python - Beispiele für Aufgaben, die über Excel-Dateien in Python ausgeführt werden
Die Programmiersprache Python ist für ihre Verwendung im Bereich der Datenwissenschaft bekannt. Data Science umfasst im Allgemeinen den Umgang mit Daten und deren Analyse mit Hilfe von Grafiken und Diagrammen wie Liniendiagrammen, Violindiagrammen, Histogrammen und Heatmaps sowie mathematischen Berechnungen wie Mittelwert, Median, Modus, Wahrscheinlichkeit, Varianz usw. Was macht Python noch besser geeignet ist die Tatsache, dass es das Lesen und Bearbeiten von Dateien sehr nahtlos macht. Da Daten in der Regel in gängigen Dateiformaten wie xls
, xlsx
, csv
, txt
usw. dargestellt werden, ist der Umgang mit Python ein Kinderspiel.
In diesem Artikel wird anhand einiger Beispiele das Lesen von Excel-Dateien mit Python vorgestellt. Zum Beispiel betrachten wir eine Beispiel-Excel-Datei, die Sie von hier herunterladen können, damit wir alle auf derselben Seite sind. Benennen Sie es einfach in sample.xls
um, damit die folgenden Codeschnipsel funktionieren, oder ändern Sie den Dateinamen in den folgenden Codeschnipseln selbst.
Lesen einer Excel-Datei mit dem Paket pandas
in Python
In Python können wir die Bibliothek pandas
verwenden, um eine Excel-Datei zu lesen. Das Modul pandas
ist eine robuste, leistungsstarke, schnelle und flexible Open-Source-Bibliothek zur Datenanalyse und -manipulation, die in Python geschrieben wurde. Wenn es nicht auf Ihrem Computer oder Ihrer virtuellen Umgebung installiert ist, verwenden Sie den folgenden Befehl.
- Um
pandas
zu installieren:pip install pandas
oderpip3 install pandas
Beziehen Sie sich auf den folgenden Code, um eine Excel-Datei mit dem Modul pandas
zu lesen.
import xlrd
import pandas
df = pandas.read_excel("sample.xls")
print("Columns")
print(df.columns)
Ausgabe:
Columns
Index(['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold',
'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts',
' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name',
'Year'],
dtype='object')
Lesen einer Excel-Datei mit dem Paket xlrd
in Python
In Python können wir das Paket xlrd
verwenden, um Excel-Dateien zu lesen. Das Modul xlrd
ist ein Python-Paket zum Lesen und Formatieren von Excel-Dateien. Falls Sie es nicht auf Ihrem Computer oder Ihrer virtuellen Umgebung installiert haben, verwenden Sie den folgenden Befehl.
- Um
xlrd
zu installieren, verwenden Sie den folgenden Befehl.
pip install xlrd
Oder,
pip3 install xlrd
Beziehen Sie sich auf den folgenden Code zum Lesen von Excel-Dateien mit xlrd
.
from xlrd import open_workbook
wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
columns = []
print("Columns")
for i in range(sheet.ncols):
columns.append(sheet.cell_value(0, i))
print(columns)
Ausgabe:
Columns
['Segment', 'Country', 'Product', 'Discount Band', 'Units Sold', 'Manufacturing Price', 'Sale Price', 'Gross Sales', 'Discounts', ' Sales', 'COGS', 'Profit', 'Date', 'Month Number', 'Month Name', 'Year']
Hier ist eine kurze Erklärung, was der obige Code macht. Es erstellt zunächst mit Hilfe der Funktion open_workbook()
einen Dateideskriptor für die Excel-Datei. Dann setzt es den Dateizeiger auf die Position (0,0)
oder die Zelle oben links zurück. Als nächstes durchläuft es die erste Zeile und speichert alle Spaltennamen in einer Variablen. Im Allgemeinen sind Spaltennamen in der ersten Zeile vorhanden; Aus diesem Grund berücksichtigt der Code diese Position. Falls sich die Spaltennamen in einer anderen Zeile befinden, kann man den Wert 0
in der Anweisung sheet.cell_value(0, i)
auf eine beliebige Zeilennummer ändern. Im Wesentlichen stellt (0, i)
die Koordinaten y
und x
dar, wobei y
0
ist und x
i
ist, wobei der Ursprung (0, 0)
bei liegt die obere linke Ecke der Datei.
Beispiele für Aufgaben, die über Excel-Dateien in Python ausgeführt werden
Schauen wir uns einige einfache Aufgaben an, die wir über Excel-Dateien ausführen können, um diese beiden Bibliotheken besser zu verstehen.
Drucken der ersten 3 Zeilen einer Excel-Datei
Mit dem pandas
-Paket
import pandas
df = pandas.read_excel("sample.xls")
count = 3
for index, row in df.iterrows():
print(row, end="\n\n")
if index == count - 1:
break
Ausgabe:
Segment Government
Country Canada
Product Carretera
Discount Band None
Units Sold 1618.5
Manufacturing Price 3
Sale Price 20
Gross Sales 32370.0
Discounts 0.0
Sales 32370.0
COGS 16185.0
Profit 16185.0
Date 2014-01-01 00:00:00
Month Number 1
Month Name January
Year 2014
Name: 0, dtype: object
Segment Government
Country Germany
Product Carretera
Discount Band None
Units Sold 1321.0
Manufacturing Price 3
Sale Price 20
Gross Sales 26420.0
Discounts 0.0
Sales 26420.0
COGS 13210.0
Profit 13210.0
Date 2014-01-01 00:00:00
Month Number 1
Month Name January
Year 2014
Name: 1, dtype: object
Segment Midmarket
Country France
Product Carretera
Discount Band None
Units Sold 2178.0
Manufacturing Price 3
Sale Price 15
Gross Sales 32670.0
Discounts 0.0
Sales 32670.0
COGS 21780.0
Profit 10890.0
Date 2014-06-01 00:00:00
Month Number 6
Month Name June
Year 2014
Name: 2, dtype: object
Mit dem Paket xlrd
from xlrd import open_workbook
wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
count = 3
for i in range(1, count + 1):
for j in range(sheet.ncols):
print(sheet.cell_value(i, j), end=", ")
print()
Ausgabe:
Government, Canada, Carretera, None, 1618.5, 3.0, 20.0, 32370.0, 0.0, 32370.0, 16185.0, 16185.0, 41640.0, 1.0, January, 2014,
Government, Germany, Carretera, None, 1321.0, 3.0, 20.0, 26420.0, 0.0, 26420.0, 13210.0, 13210.0, 41640.0, 1.0, January, 2014,
Midmarket, France, Carretera, None, 2178.0, 3.0, 15.0, 32670.0, 0.0, 32670.0, 21780.0, 10890.0, 41791.0, 6.0, June, 2014,
Drucken von Werten einer bestimmten Spalte
Mit dem pandas
-Paket
import pandas
df = pandas.read_excel("sample.xls")
column = df.columns[4]
print(column)
print("-" * len(column))
for index, row in df.iterrows():
print(row[column])
Ausgabe:
Units Sold
----------
1618.5
1321.0
2178.0
888.0
2470.0
1513.0
921.0
2518.0
1899.0
1545.0
2470.0
2665.5
958.0
2146.0
345.0
615.0
292.0
974.0
2518.0
1006.0
367.0
883.0
549.0
788.0
2472.0
1143.0
1725.0
912.0
2152.0
1817.0
1513.0
1493.0
1804.0
2161.0
1006.0
1545.0
2821.0
345.0
2001.0
2838.0
2178.0
888.0
...
Mit dem Paket xlrd
from xlrd import open_workbook
wb = open_workbook("sample.xls")
sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
column_index = 4
column = sheet.cell_value(0, column_index)
print(column)
print("-" * len(column))
for row in range(1, sheet.nrows):
print(sheet.cell_value(row, column_index))
Ausgabe:
Units Sold
----------
1618.5
1321.0
2178.0
888.0
2470.0
1513.0
921.0
2518.0
1899.0
1545.0
2470.0
2665.5
958.0
2146.0
345.0
615.0
292.0
974.0
2518.0
1006.0
367.0
883.0
549.0
788.0
2472.0
1143.0
1725.0
912.0
2152.0
1817.0
1513.0
1493.0
1804.0
2161.0
1006.0
1545.0
2821.0
345.0
2001.0
2838.0
2178.0
888.0
...