Mehrdimensionales Array Problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
NikNakPaddywagg
User
Beiträge: 4
Registriert: Dienstag 15. November 2022, 23:49

Hallo Community,

ich hab einen Pandas Datenframe (2D Array den ich gerne in bestimmten Zellen um eine Dimension erweitern würde. Hier mal wie der Datenframe aktuell aussieht:

Artikelnummer Name Menge Plastik Verpackung Datum Preis
1 001 Apfel 1 Ja 24.10.2022 1,99
2 020 Banane 5 Nein 23.10.2022 2,49
3 045 Erdbeere 10 JA 24.10.2022 4,99
4 056 Birne 1 Nein 24.10.2022 0,89

Soweit so gut. Neu Artikel kann ich mit concat oder append an den Datenframe anhängen.
Allerdings würde ich gerne eine Preisänderung des Artikels mitaufnehmen, damit man Preisänderungen nachverfolgen kann. Das ganze sollt dann am liebsten so aussehen:

Artikelnummer Name Menge Plastik Verpackung Datum Preis
1 001 Apfel 1 Ja 24.10.2022 1,99
26.10.2022 2,10
2 020 Banane 5 Nein 23.10.2022 2,49
3 045 Erdbeere 10 JA 24.10.2022 4,99
26.10.2022 5,49
4 056 Birne 1 Nein 24.10.2022 0,89

Der Artikel und seine Eigenschaften bleiben gleich nur die Preisänderung wird eingetragen. Soweit ich das verstanden habe ist dies mit Pandas nicht mehr möglich.
Hat jemand ne Idee wie man so etwas geschickt umsetzen kann.
Ziel ist es auf alle fälle das Ganze noch als Excel ausgeben zu lassen. Dabei sollte auch bei einer Sortierung nach Namen oder ähnlichem die Artikel und deren Verlauf nicht auseinander gerissen werden.

Danke schon mal für Idee.
NikNakPaddywagg
User
Beiträge: 4
Registriert: Dienstag 15. November 2022, 23:49

Das mit der Formatierung hat im Beitrag leider nicht geklappt hier nochmal mit Bilder:
Aktuell:
Bild

Wunsch:
Bild

Danke
Benutzeravatar
kbr
User
Beiträge: 1508
Registriert: Mittwoch 15. Oktober 2008, 09:27

Ein Dataframe ist eine 2-dimensionale Datenstruktur. Nun ist einer der Werte in dieser Datenstruktur (der Preis mit zeitlichen Änderungen) ein 1D-Vektor, also hast Du eigentlich drei Dimensionen. In OO, oder auch in einer Datenbank, ist so etwas sehr einfach abzubilden, in einer 2D-Matrix aber nicht mehr. Es stellt sich daher die Frage, wie Du Deine Datenstruktur in 2D projezieren möchtest. Wenn diese Frage beantwortet ist, würde ich die Daten dann aber nicht in Pandas oder Excel speichern, sondern in einer dafür geeigneten Datenstruktur und die gewünschte Projektion bei Bedarf nach Pandas oder Excel exportieren.

Eine einfache 2D-Lösung wäre, den Preis in der letzten Spalte zu haben – wie jetzt auch – und bei Preisänderungen einfach weitere Spalten hinzufügen.
NikNakPaddywagg
User
Beiträge: 4
Registriert: Dienstag 15. November 2022, 23:49

Danke für die Antwort.
Okay ich denke ich verstehe wie du das meinst. Könnte ich in einer 2-dimensionale Datenstruktur einen 1-D Vektor eintragen? Oder ist das schon ein Widerspruch und nicht möglich? Der Datentyp der Spalte wär dann einfach ein Tuple?

Die einfache Lösung hört sich erstmal sehr gut an. Hast du dennoch vielleicht einen Empfehlung für 3D Datenstrukturen?

Danke
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du kannst schon einen Vektor als Zelle innerhalb einer 2-dimensionalen Struktur anlegen - es ist aber ziemlicher Murks. Eine Verarbeitung mit pandas oder Excel ist in dem Moment schwer bis unmoeglich. Weil das am Ende ein opaquer Text ist. Auch wenn er strukturiert aussieht.

3D-Strukturen sind Datenbanken, oder sowas wie JSON.
NikNakPaddywagg
User
Beiträge: 4
Registriert: Dienstag 15. November 2022, 23:49

Okay danke für die Hilfe. Ich werde mich mal mit JSON beschäftigen.
Antworten