CSV-Import von Parqet

Hallo zusammen,
nachdem ich eine ganze Zeit Parqet (ehemals: Tresor One) verwendet habe, würde ich nun doch lieber zu Portfolio Performance wechseln.
Seit einer Weile kann man die Daten von Parqet als CSV exportieren und daher die Frage, ob sich diese irgendwie in Portfolio Performance importieren lassen.
Dies wäre für einen Umstieg jedenfalls sehr hilfreich, da der Import der einzelnen Dateien der letzten 5 Jahre - mit mehreren Depots und auch deren Umzüge) wirklich sehr umständlich/aufwendig wäre.
Vielen Dank für euer Feedback!

Beste Grüße
Thomas

Moin,

ich kenne das Tool nicht. Was gibt das denn so her im CSV Export?

Generell lohnt sich wahrscheinlich das typische vorgehen. Leg dir Mal zu allem 1, 2 Vorfälle in PP an. Also ein Wertpapier, ein Depot, Konto, Kauf, Verkauf etc. und exportier das einfach als CSV aus PP. Dann siehst du welches Format PP benötigt. Dann kannst du die Daten die du hast in Excel in das Format “massieren” (falls nötig) und dann läuft das :slight_smile:

LG

Hallo @ThomasU , hallo zusammen,
bist du gewechselt? Hat der Import wie geplant geklappt?

Ich bin zZ bei Parqet free-user und kann es daher nicht selbst testen.

Danke und schöne Grüße, dasacom

Hallo @ThomasU,

ich hatte das gleiche Problem beim Umstieg von Parqet zu Portfolio Performance und habe kurzerhand ein tool geschrieben, das eine Konvertierung von Parqet CSV Dateien in PP CSV Dateien ermöglicht. Ich habe es als open source Projekt auf github gestellt, damit jeder, der das gleiche Problem hat, davon profitiert.

https://github.com/ModnarUser/parqet_to_pp_converter

Das tool läuft zu 100% lokal und nutzt den Webbrowser, um eine Benutzeroberfläche anzuzeigen. Man kann es entweder mit einer lokalen Python Installation laufen lassen, oder das executable (das alle Abhängigkeiten mitliefert) ausführen. Die executable kann hier heruntergeladen werden: https://github.com/ModnarUser/parqet_to_pp_converter/releases/tag/0.0.0.

Falls es Probleme bei der Verwendung gibt, gerne kontakt mit mir aufnehmen. Verbesserungsvorschläge sind willkommen :slight_smile:

Viele Grüße

6 Likes

Hallo @Jo92,

wäre es erwünscht ein Feature für den CSV-Import von Parqet in die Portfolio Performance App direkt einzubauen? Oder ist das zu viel maintainance-Aufwand, weil man bei Änderungen am Format der Fremdapps ständig nachbessern muss?
An welcher Stelle im Source Code könnte man das implementieren? Ich würde mir das bei Gelegenheit mal ansehen :wink:

Viele Grüße

1 Like

Moin @ModnarUser,

das kann ich nicht beurteilen, das wäre eine Entscheidung von @AndreasB. Aber du hast doch ein cooles Tool gebaut, ich halte das für einen guten Ansatz.

Beste Grüße und schöne Weihnachten!

1 Like

Ciao @ModnarUser

Ich habe versucht den Converter zu installieren, bzw. zu benutzen…
Dies leider ohne Erfolg.
Gibt es eine einfachere Möglichkeit?

Grüsse
Philipp

Hi @pheb,

@ModnarUser wird sicherlich eine detailierte Fehlerbeschreibung brauchen um dir helfen zu können.

Alternativ kannst du ihm auch → hier auf GitHub schreiben, sollte er das hier nicht lesen.

Viele Grüße

Hallo zusammen

Ich hab das Tool zum laufen bekommen. Chat GPT sei Dank :wink:
Hier unten beigefügt, der Fehlercode, den mir die Webseite ausspuckt und die ausm Terminal.

Webseite

AttributeError
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?

Traceback (most recent call last)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 1488, in __call__
return self.wsgi_app(environ, start_response)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 1466, in wsgi_app
response = self.handle_exception(e)
           ^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
response = self.full_dispatch_request()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
rv = self.handle_user_exception(e)
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
rv = self.dispatch_request()
     ^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/philippebner/Downloads/parqet_to_pp_converter-main-2/src/app.py", line 24, in convert
transformed_df = transform_data(input_df)
                 ^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/philippebner/Downloads/parqet_to_pp_converter-main-2/src/convert_csv.py", line 30, in transform_data
output_df = output_df.append({
            ^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/generic.py", line 6296, in __getattr__
return object.__getattribute__(self, name)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'? 
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.

You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:

dump() shows all variables in the frame
dump(obj) dumps all that's known about the object

Terminal

philipp@MBA-M2-Philipp src % python3 app.py

 * Serving Flask app 'app'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 403-616-874
127.0.0.1 - - [04/Apr/2024 21:56:04] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Apr/2024 21:56:04] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Apr/2024 21:56:04] "GET /static/script.js HTTP/1.1" 304 -
127.0.0.1 - - [04/Apr/2024 21:56:04] "GET /static/csv_converter_logo.png HTTP/1.1" 304 -
127.0.0.1 - - [04/Apr/2024 21:56:04] "GET /static/style.css HTTP/1.1" 304 -
127.0.0.1 - - [04/Apr/2024 21:59:38] "POST /convert HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 1488, in __call__
    return self.wsgi_app(environ, start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 1466, in wsgi_app
    response = self.handle_exception(e)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 1463, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 872, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 870, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/flask/app.py", line 855, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/philippebner/Downloads/parqet_to_pp_converter-main-2/src/app.py", line 24, in convert
    transformed_df = transform_data(input_df)
                     ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/philippebner/Downloads/parqet_to_pp_converter-main-2/src/convert_csv.py", line 30, in transform_data
    output_df = output_df.append({
                ^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/generic.py", line 6296, in __getattr__
    return object.__getattribute__(self, name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?
127.0.0.1 - - [04/Apr/2024 21:59:38] "GET /convert?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 304 -
127.0.0.1 - - [04/Apr/2024 21:59:38] "GET /convert?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 304 -
127.0.0.1 - - [04/Apr/2024 21:59:38] "GET /convert?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 304 -

@Sn1kk3r5 Wie ich auf Github eine Nachricht sende verstehe ich nicht, daher probier ichs hier nochmals…

Grüsse und Danke
Philipp

Es gibt aktuell zwei Fehler im Konverter. Ich habe beide Fehler auf GitHub reported und einen Pull Request Fix outdated lib calls by dannyyy · Pull Request #4 · ModnarUser/parqet_to_pp_converter · GitHub erstellt, der die Fehler behebt. Mit den beiden Fixes konnte ich den Konverter fehlerfrei nutzen.

Mal schauen ob der Maintainer meinen PR akzeptiert und merged. Für alle anderen, ihr könntet lokal die beiden Änderungen auch händisch machen. Einfach vom verlinkten PR den linken Text mit dem rechten Text ersetzen.

2 Likes

Vielen Dank @pheb für das reporten der Probleme und vielen Dank @dannyyy für den PR! Ich habe ihn gerade approved. Damit sollte das Tool wieder ohne Probleme laufen :slight_smile:.

Die pipeline hat auch ein Artefakt basierend auf dem neusten main gebaut. Ich bin allerdings noch nicht dazu gekommen es zu testen. https://github.com/ModnarUser/parqet_to_pp_converter/actions/runs/8605931917/artifacts/1395520230

2 Likes

Ich habe es zwar trotzdem nicht hinbekommen die Daten zu importieren. Dein Tool @ModnarUser hat aber funktioniert mit dem Tipp von @dannyyy

Danke euch

Woran ist es denn gescheitert?

Das kann ich dir leider nicht genau beantworten. Zuerst hat PP den Import überhaupt nicht machen wollen, als es dann einen Import akzeptiert hat, waren die Daten alle falsch. Es hat mir random Daten als Verkäufe eingetragen.

Ich habe nun alles Manuell eingepflegt.

1 Like