Pythoniga Exceli failide töötlemine: Pandas vs OpenPyXL täielik juhend

1. Pythoniga Excel-failide töötlemise mugavus

1.1 Taust

Excelit kasutatakse laialdaselt andmete haldamiseks ja äriraportite koostamiseks ning see mängib olulist rolli tööriistana, mis võimaldab andmeid tõhusalt töödelda. Kuid käsitsi andmete töötlemine võtab aega ja suurendab vigade tekkimise riski. Siin tuleb appi Python – automatiseeritud skriptide abil saab Exceli andmeid hõlpsalt lugeda ja töödelda, parandades oluliselt töö efektiivsust ja täpsust.

1.2 Pythoni tugevused

Python on programmeerimiskeel, mis võimaldab lihtsa koodiga teha keerukaid toiminguid. Kasutades teeke nagu Pandas ja OpenPyXL, saab Excel-faile hõlpsasti lugeda ja muuta. Nende Pythoni eeliste abil suureneb tööprotsesside automatiseerimise ja efektiivsuse tase märgatavalt.

2. Peamised teegid Exceli lugemiseks Pythoniga

2.1 Exceli lugemine Pandase abil

Pandas on Pythonis andmete analüüsi ja töötlemise teek, mis võimaldab Exceli faile lihtsalt lugeda. read_excel() funktsiooni abil saab Exceli andmed lugeda DataFrame-kujul, mis on mugav edasiseks töötlemiseks ja analüüsimiseks.

import pandas as pd

# Excel-faili lugemine
df = pd.read_excel('example.xlsx')
print(df)

Mitme töölehe töötlemine

Excel-failid, mis sisaldavad mitut töölehte, saab samuti Pandase abil hõlpsasti lugeda. Kui kasutada sheet_name=None, saab kõik töölehed sõnastiku kujul.

df_sheets = pd.read_excel('example.xlsx', sheet_name=None)
for sheet_name, df in df_sheets.items():
    print(f"Sheet: {sheet_name}")
    print(df)

2.2 Exceli lugemine OpenPyXL abil

OpenPyXL on teek, mis sobib Exceli failide muutmiseks ja vormindamiseks, eriti siis, kui on vaja konkreetseid lahtreid või ridu otse töödelda. Lisaks suudab see säilitada Exceli paigutuse ja graafikud, mistõttu on see sobilik äridokumentide automaatseks loomiseks.

from openpyxl import load_workbook

# Excel-faili lugemine
wb = load_workbook('example.xlsx')
ws = wb['Sheet1']

# Lahtri väärtuse saamine
cell_value = ws['A1'].value
print(cell_value)

 

年収訴求

3. Pandas vs OpenPyXL: kumba valida?

3.1 Jõudluse erinevused

Pandas on väga tõhus suurte andmemahtude koondamisel ja filtreerimisel, kuid mahukate Exceli failide töötlemisel võib see tarbida palju mälu. OpenPyXL on mälusäästlikum ning kasutades read_only=True valikut, saab Exceli faile tõhusalt lugeda.

# OpenPyXL lugemiseks ainult
wb = load_workbook('large_file.xlsx', read_only=True)

3.2 Funktsioonid ja paindlikkus

Pandas sobib suurepäraselt andmeanalüüsi ja statistilise töötluse jaoks, pakkudes lihtsat DataFrame-põhist käsitlust. OpenPyXL aga võimaldab Exceli faile otse muuta, säilitada VBA-koodi, luua graafikuid ja palju muud, mistõttu on see parim valik failide enda käsitlemiseks.

4. Praktilised näited: Exceli lugemine ja andmete töötlemine

4.1 Põhiline Exceli lugemine

Lihtne näide Exceli faili lugemisest Pandase abil.

df = pd.read_excel('sales_data.xlsx')
print(df)

4.2 Konkreetsete töölehtede ja lahtrite käsitlemine

OpenPyXL abil saab lugeda konkreetseid töölehti ja lahtreid ning kirjutada uusi väärtusi.

from openpyxl import load_workbook

wb = load_workbook('sales_data.xlsx')
ws = wb['2023']
print(ws['A1'].value)

# Uue väärtuse kirjutamine
ws['B1'] = 'Uued andmed'
wb.save('updated_sales_data.xlsx')

4.3 Andmete filtreerimine ja koondamine

Pandas abil saab filtreerida ja koondada andmeid kindlate tingimuste alusel.

filtered_df = df[df['日付'].between('2023-09-01', '2023-09-30')]
total_sales = filtered_df['販売数'].sum()
print(f"Septembri kogumüük: {total_sales}")
年収訴求

5. Exceli failidega töötamise soovitused ja parimad praktikad

5.1 Vigade käsitlemine

Exceli faile lugedes on oluline lisada vigade käsitlemine juhuks, kui faili pole olemas või andmevorming on erinev.

try:
    df = pd.read_excel('non_existent_file.xlsx')
except FileNotFoundError as e:
    print(f"Viga: faili ei leitud: {e}")

5.2 Märgikoodid ja vormindus

Kui Exceli fail sisaldab jaapani või muid mitte-ladina tähemärke, tuleks vältida märgikodeeringu vigu, määrates sobiva kodeeringu.

df = pd.read_csv('data.csv', encoding='utf-8')

5.3 Suurte andmemahtude tõhus töötlemine

Kasutage Pandase chunksize parameetrit või OpenPyXL-i read_only režiimi, et töödelda suuri andmemahtusid tõhusalt.

# Pandase chunksize valik
chunks = pd.read_csv('large_data.csv', chunksize=1000)
for chunk in chunks:
    print(chunk)

5.4 Vormingu säilitamine ja graafikute loomine OpenPyXL-is

OpenPyXL võimaldab säilitada lahtri vormingu ja lisaks toetab Exceli graafikute loomist.

from openpyxl.chart import BarChart, Reference

# Graafiku loomine
chart = BarChart()
data = Reference(ws, min_col=2, min_row=1, max_col=2, max_row=10)
chart.add_data(data, titles_from_data=True)
ws.add_chart(chart, "E5")

6. Kokkuvõte: Exceli automatiseerimine Pythoniga

Pandas ja OpenPyXL on mõlemad võimsad tööriistad, mis sobivad erinevateks eesmärkideks: Pandas andmeanalüüsiks ja OpenPyXL failide otseseks muutmiseks. Õige tööriista valimine vastavalt eesmärgile võimaldab Exceli failidega töötamist oluliselt tõhustada. Pythoniga saab automatiseerida töövooge ja andmete töötlemist, suurendades märkimisväärselt tootlikkust.