Seite 1 von 1

python Geschwindigkeit verbessern

Verfasst: Samstag 14. Dezember 2019, 09:49
von PyN
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!

Re: python Geschwindigkeit verbessern

Verfasst: Samstag 14. Dezember 2019, 10:31
von Sirius3
Was passiert denn statt dessen? Wenn das der gesamte Code ist, dann wird da auch nichts ausgegeben.

Re: python Geschwindigkeit verbessern

Verfasst: Samstag 14. Dezember 2019, 10:33
von sparrow
Dann zeig doch mal deinen vollständigen Code, damit wir nachvollziehen ob und was da ausgeführt wird.

Re: python Geschwindigkeit verbessern

Verfasst: Samstag 14. Dezember 2019, 10:36
von PyN
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

Re: python Geschwindigkeit verbessern

Verfasst: Samstag 14. Dezember 2019, 11:45
von Sirius3
Dann mußt Du das Programm Schritt für Schritt durchgehen und schauen, an welcher Stelle es hängen bleibt.

Re: python Geschwindigkeit verbessern

Verfasst: Samstag 14. Dezember 2019, 11:53
von __blackjack__
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