python Geschwindigkeit verbessern

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
PyN
User
Beiträge: 12
Registriert: Donnerstag 12. Dezember 2019, 16:09

Guten Morgen zusammen :)

ich habe folgendes Problem:
Ich möchte eine Tabelle bearbeiten aber Python führt mein Programm Code nicht aus. (es kommt keine Fehlermeldung)

x=pd.read_csv(r"C:\Users....Beispiel.csv", delimiter = ';', usecols=["date", "id", "value"])

matrix = pd.DataFrame(index=x['date'].unique(), columns=x['id'].unique())

for row in x.itertuples():
matrix.loc[row.date, row.id] = row.value

Meine Ausgangs CSV besitzt knapp 7000 Zeilen und drei Spalten...Ich glaube hier liegt das Problem

Habt ihr eine Idee, wie ich das Programm zum laufen bekomme?

Vielen Dank!
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Was passiert denn statt dessen? Wenn das der gesamte Code ist, dann wird da auch nichts ausgegeben.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Dann zeig doch mal deinen vollständigen Code, damit wir nachvollziehen ob und was da ausgeführt wird.
PyN
User
Beiträge: 12
Registriert: Donnerstag 12. Dezember 2019, 16:09

das ist mein vollständiger Code:
import pandas as pd

x=pd.read_csv(r"C:\Users\...xy.csv", delimiter = ';', usecols=["date", "id", "value"])

matrix = pd.DataFrame(index=x['date'].unique(), columns=x['id'].unique())

for row in x.itertuples():
matrix.loc[row.date, row.id] = row.value

matrix.to_csv(r"C:\Users\...xy.csv")

Das Programm hört aber nicht auf zu laufen.. Es kommt weder eine Fehlermeldung noch ein CSV File am Ende
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

Dann mußt Du das Programm Schritt für Schritt durchgehen und schauen, an welcher Stelle es hängen bleibt.
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wobei selbst Schleifen in Python schreiben in der Regel bei Numpy und Pandas ein Warnzeichen ist. Mal als Denkanstoss:

Code: Alles auswählen

In [21]: df                                                                     
Out[21]: 
  date id  value
0  foo  a      1
1  foo  b      2
2  foo  c      3
3  bar  a      4
4  bar  b      5
5  bar  c      6
6  baz  a      7
7  baz  b      8
8  baz  c      9

In [22]: df.set_index(["date", "id"]).unstack()                                 
Out[22]: 
     value      
id       a  b  c
date            
bar      4  5  6
baz      7  8  9
foo      1  2  3
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten