Hallo,
ich bin neu hier, und hoffe, dass ich auf Anhieb das richtige Forum für meine Frage gefunden habe. Falls nicht bitte ich das zu entschuldigen.
Ich brauche Hilfe bei einer Problemlösung.
Momentan bin ich dabei ein Tool für eine Berechnung von Faktura-Daten zu erstellen. Hierbei müssen im Vorfeld Daten eingelesen werden. Soweit kein Problem. Bei den Daten handelt es sich um eine excel-Datei, die aber nicht vollständig ist. Die Datensätze müssen mit den Daten aus einer zweiten Datei verglichen werden und anhand eines Kennzahl ergänzt werden.
Genauer beschrieben:
Datei 1 beinhaltet Datensätze inklusive der Spalte Equipmentnummer.
Datei 2 beinhaltet Datensätze inklusive der Spalte Equipmentnummer und Technikart.
Ich muss die Datensätze aus Datei 1 und 2 miteinander anhand der Equipmentnummer vergleichen und die Datensätze aus Datei 1 um die Technikart aus Datei 2 erweitern.
Nun bin ich noch ziemlich am Anfang meines Python-Lebens und bin bischen ratlos, wie ich das lösen soll. Bzw. ist mir klar, dass ich die beiden Dateien in Arrays einlesen kann, weiss dann nur nicht, wie ich die Abfrage und das ergänzen der Datensätze lösen kann.
Ich würde mich freuen, wenn ihr mir mit Ideen ein bischen helfen könntet.
lg
Damian
[HOW TO?] Arrays vergleichen und Datensätze zusammenfügen
@KrachBumm: Schau Dir mal Pandas an. Für konkretere Antworten müsstest Du etwas konkreter beschreiben was Du machst/versuchst und mit welchen Bibliotheken Du arbeitest. Eventuell wäre auch interessant was mit den Daten danach passieren soll.
Hallo BlackJack,
Vielen Dank erstmal für deine Antwort. Pandas hat mich auf jeden Fall schon mal in die richtige Richtung gelenkt. Ich kann mit Pandas nun meine Daten bequem in Python einlesen und soweit reduzieren, dass ich in zwei Listen die benötigten Daten habe.
Hier mal ein Ausschnitt aus den beiden Listen, um zu erklären was ich machen möchte:
Liste 1: (gekürzt, da die anderen Spalten hierfür nicht wichtig sind!)
Liste 2:
Wie man sieht, haben beide Listen die Spalte "EQ-NR". Liste 1 hat ca. 400000 Datensätze und Liste 2 ca. 160000. Die EQ-NR in der Liste 2 definiert mir die Technikart (TA), welche mir in Liste 1 fehlt. Ich müsste jetzt wissen, wie ich die Spalten "EQ-NR" aus Liste 1 und 2 vergleichen kann und dann bei übereinstimmender Nummer die Technikart in die Liste 1 anfügen kann. Das muss natürlich an der passenden Stelle passieren.
Einfach gesagt: Liste1-EQ-Nr. = Liste2-EQ-Nr. => TA an Datensatz aus Liste1 anfügen.
Ich brauche diese Daten um später Berechnungen durchzuführen und diese über die Technikart zu sortieren.
Hoffentlich konnte ich bischen Licht ins Dunkel bringen. Vielleicht habt ihr hier ja eine Idee.
Vielen Dank schon mal!
Damian
Vielen Dank erstmal für deine Antwort. Pandas hat mich auf jeden Fall schon mal in die richtige Richtung gelenkt. Ich kann mit Pandas nun meine Daten bequem in Python einlesen und soweit reduzieren, dass ich in zwei Listen die benötigten Daten habe.
Hier mal ein Ausschnitt aus den beiden Listen, um zu erklären was ich machen möchte:
Liste 1: (gekürzt, da die anderen Spalten hierfür nicht wichtig sind!)
Code: Alles auswählen
FAK-ART FAK-DAT LEIST-DAT KD-CRM MW-BW EQ-NR MATERIAL \
1 ZPAF 2015-05-18 2015-05-31 TMD E 1003594714 G230ETS
2 ZPAF 2015-05-18 2015-05-31 TMD B 1000943473 G230ETS
3 ZPAF 2015-05-18 2015-05-31 TMD E 1000943608 G230ETS
4 ZPAF 2015-05-18 2015-05-31 TMD B 1000943704 G230ETS
5 ZPAF 2015-05-18 2015-05-31 TMD E 1000943823 G230ETS
6 ZPAF 2015-05-18 2015-05-31 TMD B 1000943985 G230ETS
7 ZPAF 2015-05-18 2015-05-31 TMD E 1000954774 G230ETS
8 ZPAF 2015-05-18 2015-05-31 TMD B 1000954790 G230ETS
9 ZPAF 2015-05-18 2015-05-31 TMD E 1000955082 G230ETS
10 ZPAF 2015-05-18 2015-05-31 TMD B 1000955097 G230ETS
11 ZPAF 2015-05-18 2015-05-31 TMD E 1001415563 G230ETS
12 ZPAF 2015-05-18 2015-05-31 TMD B 1001415566 G230ETS
13 ZPAF 2015-05-18 2015-05-31 TMD E 1001415569 G230ETS
14 ZPAF 2015-05-18 2015-05-31 TMD B 1003116180 G230ETS
15 ZPAF 2015-05-18 2015-05-31 TMD E 1003189748 G230ETS
16 ZPAF 2015-05-18 2015-05-31 TMD B 1003189752 G230ETS
17 ZPAF 2015-05-18 2015-05-31 TMD E 1003189753 G230ETS
Code: Alles auswählen
EQ-NR TA
0 1003594714 SONSTIGES
1 1000943473 NaN
2 1000943608 Sonstiges
3 1000943704 Sonstiges
4 1000943823 Sonstiges
5 1000943985 Sonstiges
6 1000954774 FMED
7 1000954790 FMED
8 1000955082 SDH
9 1000955097 NaN
10 1001415563 Sonstiges
11 1001415566 Sonstiges
12 1001415569 SONSTIGES
13 1001496157 NaN
14 1003116180 NaN
15 1003189748 NaN
16 1003189752 NaN
17 1003189753 NaN
Einfach gesagt: Liste1-EQ-Nr. = Liste2-EQ-Nr. => TA an Datensatz aus Liste1 anfügen.
Ich brauche diese Daten um später Berechnungen durchzuführen und diese über die Technikart zu sortieren.
Hoffentlich konnte ich bischen Licht ins Dunkel bringen. Vielleicht habt ihr hier ja eine Idee.
Vielen Dank schon mal!
Damian
Du suchst anscheinend Database-style DataFrame joining/merging in der Pandas-Dokumentation.