Kombinér Excel og Python: flows, UDF'er og visualiseringer

  • Brug af pandas og merge til at flette Excel- og CSV-data uden at miste information, kontrollere join-typer og manglende værdier.
  • Integrering af Python i Excel ved hjælp af PY- og xl()-funktionerne, så du kan arbejde med områder, tabeller og DataFrames direkte i celler.
  • Avanceret automatisering med biblioteker som IronXL til at flette og ophæve fletning af celler, manipulere formater og administrere Excel-projektmapper i detaljer.
  • Praktisk anvendelse af Python-scripts til at konsolidere flere filer, ark og tabeller efter nøgle, hvilket reducerer fejl og manuel arbejdstid.

Kombination af Excel og Python

kombinere Excel og Python blev en af ​​de mest effektive måder at arbejde med data på Når vi har brug for at behandle tilbagevendende rapporter, konsolidere filer fra forskellige kilder eller automatisere opgaver, der kan tage timevis manuelt i Excel, åbner det at lære at kombinere disse to verdener døren til meget hurtigere og frem for alt gentagelige arbejdsgange. Hvis du arbejder dagligt med regneark, CSV-filer, forretningsrapporter eller lister til analyse, er denne tilgang uvurderlig.

Hovedideen er enkel: Excel forbliver din bekvemme brugerflade til visning og forberedelse af data, og Python er den motor, der automatiserer og kombinerer alt bag kulisserne.Takket være brugen af ​​den nye Python integreret i Excel, kan du nu dække stort set ethvert behov.

Muligheder for at kombinere Excel-data med Python ved hjælp af Pandas

Den mest almindelige metode til at forbinde Excel-data med Python er brug pandaernes biblioteksom tilbyder meget kraftfulde funktioner til at læse, flette og transformere regneark. Kernen i disse operationer er pandas.merge(), som fungerer på samme måde som tabelkombinationer i databaser eller en stærkt forbedret VLOOKUP/XLOOKUPP.

El grundlæggende flow Det følger normalt fire trin:

  1. Importér pandaer.
  2. Læs filerne.
  3. Saml dem.
  4. Ryd manglende værdier.

Med denne proces kan du udføre komplette joins mellem to filer, hvilket sikrer, at du ikke mister information, og at du altid har kontrol over, hvilke rækker der er inkluderet, og hvilke der er udeladt.

Importér og læs

Til at begynde med, pandas importeres til dit Python-script med en så simpel instruktion som import pandas as pdDerfra kan du læse dine Excel-projektmapper med pd.read_excel() Eller, hvis du arbejder med CSV-filer, skal du bruge pd.read_csv()ændrer kun læsefunktionen, men bevarer resten af ​​flowet nøjagtigt det samme.

Ved at læse Excel- og CSV-filer med pandas kan du konvertere hvert ark eller hver fil til en DataFrame.Dette er en tabel i hukommelsen, hvor du derefter kan udføre filtre, grupperinger og selvfølgelig joins. For eksempel kan du læse to filer som denne: df_left = pd.read_excel("ventas_enero.xlsx") y df_right = pd.read_excel("ventas_febrero.xlsx")eller varianten med read_csv hvis kilden er CSV.

fusion

Det afgørende øjeblik kommer, når du bruger pd.merge() at flette to DataFramesDenne funktion modtager som minimum følgende argumenter left y rightsom angiver hvilke tabeller du vil kombinere, og en parameter how som definerer typen af ​​forening. Adfærden af how Det er vigtigt at kontrollere, om alle rækker bevares, kun matchende rækker, eller kun dem på den ene side.

Mellem mest almindeligt anvendte værdier for how están inner y outer. Med inner Kun de rækker, der findes i begge DataFrames i henhold til den flettenøgle, du angiver, vil blive bevaret; det vil sige, at du kun bevarer skæringspunktet mellem dataene. outer Alle rækker fra begge filer flettes sammen. Og når en værdi ikke findes for en bestemt kolonne i nogen af ​​tabellerne, vil den blive udfyldt med en manglende værdi (NaN).

Ud over kolonner tillader pandas flet efter indeks ved hjælp af left_index y right_indexHvis du aktiverer disse argumenter (f.eks. left_index=True, right_index=True), udføres sammenføjningen ved hjælp af rækkeindekser i stedet for specifikke kolonner. Denne indstilling er meget nyttig, når du allerede har indekset konfigureret som et unikt id, eller når kolonnerne ikke er korrekt justeret, men indekset er.

Tomme værdier

Efter at have tilsluttet DataFrames er det normalt nødvendigt at prøve tomme værdierOfte vil man konvertere numeriske NaN-værdier til nuller og efterlade noget klar tekst til strengfelter. Et almindeligt mønster er noget i retning af dette: brug select_dtypes('string') at finde tekstkolonner og udfylde dem med et ord som "tom", og bruge select_dtypes('number') for numeriske kolonner og erstat deres NaN med 0Dette forhindrer problemer senere, når du eksporterer til Excel eller udfører beregninger.

Husk at udfyldning af manglende værdier kræver respekter datatypen for hver kolonneHvis du forsøger at anvende en fillna(0) Hvis du forsøger at behandle tekstkolonner direkte, vil processen mislykkes, så det er bedst at adskille numeriske og strengkolonner først. Denne adskillelse forhindrer fejl og giver dig mulighed for at kontrollere, hvilken pladsholder du bruger til hver type data.

Sammenlægning af Excel-data med Python

Flet Excel- og CSV-filer med samme antal rækker

I mange praktiske scenarier støder du på To filer, der deler præcis det samme antal rækker og én fælles kolonne som fungerer som en central akse: for eksempel en liste over URL'er for et domæne sammen med SEO-målinger i én fil og besøgs- eller konverteringsdata i en anden. I disse situationer er linkningen meget ligetil og giver dig mulighed for at udvide hver række med flere oplysninger uden at miste datajustering.

Når rækkeantallet matcher i begge filer, og nøglekolonnen ikke ændrer sig, er det relativt simpelt at kombinere dataene, men det er stadig tilrådeligt at opretholde en organiseret struktur. Ideelt set bør du læse begge filer med pandas, sikre dig, at join-kolonnen (f.eks. "URL") er skrevet identisk og har samme datatype, og derefter køre en merge som bevarer alle rækker.

Denne type forening er af særlig interesse Kontroller, at begge tabeller har samme længdeHvis en af ​​filerne indeholder ekstra rækker, kan du ende med at miste information eller generere rækker, der ikke burde være der. Derfor er det fornuftigt at tjekke noget i retning af... inden du fletter. len(df1) y len(df2) for at bekræfte, at mængden af ​​poster faktisk er den samme.

Når Excel- og/eller CSV-filen er blevet flettet, er det næste logiske trin eksporter resultatet til en ny projektmappeMed Pandas kan du skrive direkte to_excel()Dette vil generere en fil i din Python-projektmappe, medmindre du angiver en anden sti. På denne måde afspejles alt flettearbejdet i en standard Excel-fil, som du kan åbne, filtrere, formatere og dele.

Brug af Python direkte i Excel (Python i Excel)

Udover at arbejde med eksterne scripts bliver brugen af ​​eksterne scripts stadig vigtigere. Officiel integration af Python i ExcelDenne funktionalitet giver dig mulighed for at skrive Python-kode i celler, ligesom du ville skrive en formel, og kombinere den med områder og tabeller, der allerede findes i projektmappen.

For at begynde at bruge Python i Excel kan du gøre følgende: fra fanen Formlerved at vælge muligheden for at indsætte Python i den aktive celle, eller ved at bruge funktionen direkte =PY()Når du har gjort dette, forstår Excel, at indholdet i den pågældende celle vil blive fortolket som Python-kode, og der opretholdes en lille visuel markør med et identificerende ikon. Hvis du har brug for flere praktiske detaljer, kan du se vores Komplet guide til Python i Excel.

En af nøglerne til denne integration er hjælpefunktion xl()som fungerer som en bro mellem Excel og PythonTakket være det kan du referere til Excel-områder, tabeller, forespørgsler eller definerede navne i Python-kode.

Regnearket respekterer stadig en beregningsrækkefølge, men Python-celler udføres række for række.Fra venstre mod højre, og derefter ned ad siden.

Formellinjen tilbyder en praktisk redigeringstilstand til Python-kode.tillader linjeskift, udvidelse for at se flere linjer på én gang og tastaturgenveje til at udvide eller skjule skriveområdet.

Excel Web

Outputkontrol, genberegning og fejlhåndtering i Python til Excel

Når du bruger Python i Excel, kan du vælg hvordan du vil have resultaterne returneretDu har mulighed for at konvertere resultatet til klassiske Excel-værdier, som skrives direkte til cellen, eller at beholde dem som Python-objekter. Dette er især nyttigt, når du arbejder med strukturer som DataFrames.

Hvis du returnerer beregningen som et Python-objekt, Cellen vises med et kortikon.Når du klikker på et objekt, åbnes en forhåndsvisning, der viser dets detaljer. Dette er meget nyttigt, når du arbejder med store datasæt. Denne tilgang giver dig mulighed for at håndtere udvidede resultater uden at rode arket med hundredvis eller tusindvis af synlige rækker.

Visse datatyper fungerer særligt godt med denne integration, og Pandas DataFrames er en af ​​de mest bemærkelsesværdige. Arbejde med DataFrames i Excel letter overgangen fra analyse i koden til præsentation af resultater i traditionelle regnearktabeller eller diagrammer.

Genberegningen håndteres på samme måde som i andre Excel-formler, men med særlige kendetegn.Hver gang du ændrer en celle, som en Python-formel afhænger af, genberegnes rækkefølgen af ​​de involverede Python-celler. For at forbedre ydeevnen, især når du arbejder med store modeller, kan du skifte til delvis eller manuel beregningstilstand, så genberegning kun sker, når du eksplicit anmoder om det.

I disse manuelle tilstande har du flere måder at gentage beregningen påDu kan opdatere en værdi ved at trykke på F9, klikke på knappen "Beregn nu" på formellinjen eller i nogle tilfælde bruge celleindikatoren, der viser, at værdien er forældet. Denne fleksibilitet hjælper dig med at finde balancen mellem nøjagtighed og ydeevne, mens du udvikler dine analyser.

Automatiser indlæsning og behandling af Excel med Python-scripts

Ud over det integrerede miljø i Excel er det fortsat meget almindeligt arbejder med eksterne Python-scripts til at behandle inputfilerEt typisk mønster involverer at have en konfigurationsfil (for eksempel config.json), et script som data_processing.py og en eller flere Excel-projektmapper, der fungerer som datakilder.

Arbejdsgangen er som følger:

  1. Forbered input-Excel-filensom man kunne kalde noget i retning af input.xlsxDenne fil placeres i samme mappe som Python-scriptet for at forenkle stier, især hvis du er nybegynder og ikke ønsker at blive for tvangsindlæst med mere avancerede absolutte eller relative stier.
  2. Opret kodefilen. E.g. data_processing.pyI din foretrukne editor eller IDE skal du kopiere din eksisterende kodebase (klasser, funktioner osv.) og tilpasse den til dine specifikke behov. Gem ændringerne, hver gang du tilføjer et nyt stykke logik relateret til læsning eller transformation af data.
  3. Gem scriptet og kør programmet fra terminalen.Forudsat at du er i samme mappe som den er placeret i data_processing.pyDu ville kaste noget i retning af python data_processing.py config.json input.xlsxJusterer konfigurationsfilens navn, så det matcher din placering. Ideen er, at scriptet læser config.json for at finde ud af, hvilke operationer der skal anvendes, og derefter arbejde videre på dem input.xlsx.

Jern XL

IronXL: Kombinering og manipulation af Excel-celler med Python

Udover pandas og indbygget Python-integration i Excel, Der findes specifikke biblioteker som f.eks. IronXL designet til at håndtere Excel-filer på en meget detaljeret mådeMed dem kan du ikke kun læse og skrive data, men også style, flette og ophæve fletning af celler eller arbejde med avancerede formler fra dine Python-applikationer.

IronXL er designet at arbejde med forskellige regnearksformaterfra klassikerne XLSX y XLS selv bøger med makroer (XLSM), skabeloner ( ), skabeloner ( ),XLTX) eller endda strukturerede tekstfiler som f.eks. CSV y TSVAlt dette fungerer på tværs af flere platforme: Windows, macOS, Linux, Docker-containere og endda cloud-miljøer som Azure eller AWS.

IronXL API'en gør de daglige opgaver meget nemmere, når du har brug for at manipulere formatet.Du kan vælge regneark, læse og skrive værdier til bestemte celler, kontrollere skrifttyper, baggrundsfarver, rammer, justering og formater for tal, datoer, procenter, valuta og meget mere. Derudover genberegnes Excel-formler automatisk, når du ændrer de involverede celler, hvilket altid opretholder den forventede funktion for brugere, der er fortrolige med Excel.

For at begynde at bruge IronXL i et Python-projekt, skal du først installer pakken med pipved hjælp af en kommando som pip install ironxlDerefter importerer du modulet med noget i retning af from ironxl import * Og i miljøer, der kræver det, skal du oprette en licensnøgle, som du i tilfælde af prøveversioner kan få gratis fra udbyderens hjemmeside.

Når biblioteket er konfigureret, er det første trin Indlæs den Excel-projektmappe, du vil manipulere.. For eksempel workbook = WorkBook.Load("test_excel.xlsx") ville åbne en fil kaldet test_excel.xlsx at arbejde med det i hukommelsen. Fra det øjeblik kan du navigere gennem dets ark, ændre data, flette regioner og endelig gemme resultatet med en simpel workbook.Save().

Flet og ophæv fletning af specifikke celler med IronXL

Når dit mål ikke kun er at kombinere data fra forskellige kilder, men også at forbedre præsentationen i Excel, Programmering af celler kan spare dig en masse tidForestil dig en kolonne med lande, hvor flere rækker vises med "USA". Du kan flette disse celler sammen for at gøre rapporten mere overskuelig for den person, der skal se den.

Med IronXL kan du Vælg det ark, du vil arbejde på, ved at få adgang til dets indeks eller navn.. For eksempel worksheet = workbook.WorkSheets Det ville føre dig direkte til det første ark i projektmappen. Derfra udføres dine handlinger på det ark: læsning af celler, skrivning, typografier eller fletning.

til flette celler i et bestemt område, IronXL har metoden Merge() i bladobjektet. Det betyder, at du kan køre noget i retning af worksheet.Merge("E5:E7") at kombinere række 5 til 7 i kolonne E, og worksheet.Merge("E9:E10") for en anden gruppe. Så skal du bare tilkalde workbook.Save() for at gemme ændringerne i Excel-filen.

Hvis du har brug for det at vide hvilke sammensmeltede områder der findes i et arkIronXL muliggør deres programmatiske gendannelse. Med en metode som GetMergedRegions() Du kan få en liste over alle flettede celleområder og gennemgå dem i et loop, f.eks. udskrive mergedRegion.RangeAddressAsString for at se det berørte område i et læsbart format (A1:B3, E5:E7 osv.).

På et tidspunkt vil du måske tilbageføre disse fusionerFor eksempel at manipulere dataene række for række. I så fald eksponerer det samme ark en metode Unmerge() hvortil du kan sende intervaller som "E5:E7" o "E9:E10"Efter at have udført disse kald og gemt projektmappen, bliver cellerne uafhængige igen, klar til at modtage forskellige værdier eller blive behandlet på en anden måde.

I sidste ende, Kombinationen af ​​Excel og Python giver dig mulighed for at gå fra manuelt og repetitivt arbejde til langt smartere arbejdsgange.Excel forbliver din fremviser og dit kontrolpanel, men Python klarer det hårde arbejde med at læse, sammenflette, rense, flette celler og genberegne. Når du først har vænnet dig til denne arbejdsmetode, bliver gentagelse af komplekse processer et spørgsmål om et par klik. Eller en enkelt kommando i terminalen.

Analysér dine data som en videnskabsmand: Excel-værktøjer til professionel og effektiv analyse
relateret artikel:
Analysér dine data som en videnskabsmand: Excel-værktøjer til professionel og effektiv analyse

Tilføj som foretrukken kilde