Hilfe bei Import von Excel und for Schleifen-Iteration

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
deside
User
Beiträge: 9
Registriert: Freitag 5. März 2021, 16:01

Hallo zusammen,
ich bin neu hier im Forum und auch Anfänger was die Programmierung mit Python anbelangt.
Ich nutze Spyder als Oberfläche und habe folgendes Problem.

Falls das jemandem etwas sagt, möchte ich mit Gurobi arbeiten.

Zuerst habe ich ein Excel File eingelesen

Code: Alles auswählen

import gurobipy as gp
import time
from gurobipy import GRB

import pandas as pd

data = pd.read_excel (r'C:\Users\....\Eingabedaten.xlsx') 
df = pd.DataFrame(data, columns= ['n','FMLZ','SMLZ', 'Kat', 'N?', 'DLD', 'RBL'])
mit dem Befehl

Code: Alles auswählen

print (df)
print('len',len(df))
wird korrekt die Tabelle und die Zeilenanzahl ausgegeben.

Als erstes wollte ich mich mit dem "DLD"-Eintrag befassen, einer Zeitabgabe in der Excel-Tabelle, die als Stunde:Minute:Sekunde angeben ist. Und diesen in Sekunden von 0:00:00 Uhr aus gesehen ausgeben lassen für jede Zeile in meinem Tabellen-Dokument.

Code: Alles auswählen

for counter in range(0,len(df)): 
    print(counter)
    t=df['DLD'[counter]]
    print(t)
    seconds = int(datetime.timedelta(hours=t.hour,minutes=t.minute,seconds=t.second).total_seconds())
    print(second)
Bereits nach der "for" Zeile bekomme ich bei der run current line Option einen "expected an indented block" IndentationError. die nachfolgeneden Zeilen sind 4 spaces/1tab eingerück
Außerdem ebkomme ich einen KeyError: 'D'
Desweiteren scheint er die Klasse datetime nicht zu erkennen, was kann ich hier tuen?

I finde einfach selbst nicht heraus was ich falsch mache.
Hilfe wäre eine extreme Erleichterung und ich würde mich sehr freuen wenn jemand der sich besser auskennt als ich eine Lösung beisteurern kann.

Grüße
Deside
Benutzeravatar
Dennis89
User
Beiträge: 1121
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

ich steig da noch nicht ganz durch, kannst du mal bitte den ganzen Code an einem Stück posten, mit Fehlermeldung?

Du importierst kein 'datetime', dann kann Python es auch nicht kennen.

Beispiel:

Code: Alles auswählen

import datetime

print(datetime.datetime.now())
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
deside
User
Beiträge: 9
Registriert: Freitag 5. März 2021, 16:01

Ah, danke den import habe ich nun hinzugefügt.

Es kommt aber immer noch folgende Fehlermeldung:
Bild

Zeile 32 ist folgende Zeiel im obrigen codeabschnitt:

Code: Alles auswählen

    t=df['DLD'[counter]]
Ich komm mir echt doof vor, bestimmt is es irgendetwas echt offensichtliches und ich komm einfach nich drauf.

Grüße und schonmal vielen Dank
deside
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du

t=df['DLD'[counter]]

machst, dann holst du den counter’sten Buchstaben aus DLD. Bei Counter == 0 also D. Und dann probierst du aus dem df die Spalte D zu holen. Wenn du hingegen aus der Spalte DLD die counter’ste Zeile willst, muss das

t=df['DLD'][counter]

sein.
deside
User
Beiträge: 9
Registriert: Freitag 5. März 2021, 16:01

Ah, vielen dank deets. Daran liegts. Werde ich in Zukunft beachten.
Antworten