Hallo miteinander,
ein ehemaliger Kollege von mir hat regelmäßig unsere bestellten Artikel ausgewertet. Diese liegen immer als Export in .xlsx-Format vor.
Leider können die Daten in dieser Excel-Datei immer unterschiedlich vorliegen -_-
1. Variante: (Beispiel)
Artikel Bestellemenge
a 5
b 2
c 8
b 2
a 1
2. Variante: (Beispiel)
a 2
a 5
b 0.3
b 1.7
c 0.5
Der Kollege hat wohl vorher diese Daten "händisch" in Excel sortiert und die Mengen des geichen Artikels dann summiert.
Ich dachte mir das es ja auch mit Python gehen müsste?! Doch leider bin ich noch ein ziemlicher Anfänger und einen Ansatz zur Lösung des Problemes habe ich nicht gefunden (Will auch nicht ausschließen das ich zu blöd bin )
Ich hoffe das mir hier jemand einen Ansatz liefern kann?
Beste Grüße, Renée
Gleiche Zellenwerte finden und summieren
-
- User
- Beiträge: 491
- Registriert: Mittwoch 13. November 2019, 08:38
Vielleicht kann man sogar vorher ansetzen, bevor der Export in Excel geschieht. Woher kommen die Daten? Warum haben sie manchmal ein abweichendes Format?
Also wie ich die Excel-Datei mithilfe von pd.read_excel einlese habe ich herausgefunden. Wenn ich es richtig verstanden habe, kann ich dann über sort.by die Werte sortieren.
Doch wie der weitere Weg ist, dazu finde ich keinen Ansatz. Immer nur Beispiele wie ich ganze Spalten summiere. Ich müsste doch aber die ganzen "a", "b"....etc. vorher gruppieren um sie summieren zu können, oder?
Die Excel-Dateien werden vom ERP-System exportiert. Leider können wir da nichts einstellen, das könnte nur der ERP-System-Programmierer abändern. Da hat man mir schon gesagt, das es kurzfristig nicht möglich sei, das abzuändern bzw. die Programmierung abzuändern -_-einfachTobi hat geschrieben: ↑Donnerstag 10. Juni 2021, 09:40 Vielleicht kann man sogar vorher ansetzen, bevor der Export in Excel geschieht. Woher kommen die Daten? Warum haben sie manchmal ein abweichendes Format?
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@rennse: Gruppieren ist ja schon ein Stichwort das Du hast. Schau doch mal in das Pandas-Benutzerhandbuch, allererster Abschnitt „10 minutes to pandas“ die Überschriften dort. Da gibt's eine die heisst „Grouping“.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Vielen Dank an alle für die Hilfe
Bin irgendwie nicht auf den Gedanken gekommen in das Kapitel "10 minutes to pandas“ zu schauen -_-
Mein Fehler war auch das ich die Excel-Liste zwar eingelesen hatte, aber ohne Index. Daher konnte ich die Datensätze nicht nach "Artikel" gruppieren.
Meine Lösung sieht nun wie folgt aus:
----
import pandas as pd
df= pd.read_excel('Test1.xlsx', header=1) #Einlesen der Excel-Datei
print(df.head) #Ausgabe zur Kontrolle
df2 = df.groupby("Artikel").sum("Anzahl") #Gruppierung der Spalte "Artikel" und Summierung der jeweiligen Werte der Spalte "Anzahl"
print(df2) #Ausgabe zur Kontrolle
df2.to_excel("Bestellmengen_sauber.xlsx", sheet_name="Auflistung") #Ausgabe in neue Datei
----
So funktioniert es zumindest
Das es noch eine "schönere" Lösung gibt, davon gehe ich aus
Der nächste Schritt wird sein, das er das für alle Excel-Dateien im Ordner macht und diese in separate Dateien speichert oder so ähnlich. Da bin ich mir noch nicht sicher wie ich es gerne haben möchte
Aber aufjedenfall nochmal Danke für das "schubsen" in die richtige Richtung
Bin irgendwie nicht auf den Gedanken gekommen in das Kapitel "10 minutes to pandas“ zu schauen -_-
Mein Fehler war auch das ich die Excel-Liste zwar eingelesen hatte, aber ohne Index. Daher konnte ich die Datensätze nicht nach "Artikel" gruppieren.
Meine Lösung sieht nun wie folgt aus:
----
import pandas as pd
df= pd.read_excel('Test1.xlsx', header=1) #Einlesen der Excel-Datei
print(df.head) #Ausgabe zur Kontrolle
df2 = df.groupby("Artikel").sum("Anzahl") #Gruppierung der Spalte "Artikel" und Summierung der jeweiligen Werte der Spalte "Anzahl"
print(df2) #Ausgabe zur Kontrolle
df2.to_excel("Bestellmengen_sauber.xlsx", sheet_name="Auflistung") #Ausgabe in neue Datei
----
So funktioniert es zumindest
Das es noch eine "schönere" Lösung gibt, davon gehe ich aus
Der nächste Schritt wird sein, das er das für alle Excel-Dateien im Ordner macht und diese in separate Dateien speichert oder so ähnlich. Da bin ich mir noch nicht sicher wie ich es gerne haben möchte
Aber aufjedenfall nochmal Danke für das "schubsen" in die richtige Richtung