Seite 1 von 1
iloc und get_loc 'Key Error'
Verfasst: Mittwoch 18. Dezember 2019, 09:56
von potyh
Guten Morgen,
bei der Verwendung von iloc und get_loc bekomme ich einen Key Error. Ich dachte, dass ich das problem mit try und except lösen kann. Funktionierte aber nicht...
Mein Code ist:
Code: Alles auswählen
for d in range (index_range):
date_loc2 = date_loc + d
try:
V_i= data_vol.iloc[date_loc2, data_vol.columns.get_loc (s)]
except KeyError:
V_i= "nAn"
Ich weis, dass 's' Werte annimmt, die nicht in data_vol enthalten sind.
Wisst ihr eine Möglichkeit dieses Problem zu lösen?
Vielen Dank
Re: iloc und get_loc 'Key Error'
Verfasst: Mittwoch 18. Dezember 2019, 10:29
von sparrow
Code sollte man in Python mit 4 Leerzeichen einrücken.
Variablen schreibt man in Python nach Kovention klein_mit_unterstrich. Und sie sollten sprechende Namen haben.
Was ist data_vol ?
Wie lautet die vollständige Fehlermeldung inkl. Stacktrace?
Re: iloc und get_loc 'Key Error'
Verfasst: Mittwoch 18. Dezember 2019, 10:30
von Sirius3
"Funktionierte aber nicht..." ist eine ganz schlechte Fehlerbeschreibung. Was willst Du erreichen? Was ist statt dessen das Verhalten des Programms?
Re: iloc und get_loc 'Key Error'
Verfasst: Mittwoch 18. Dezember 2019, 10:46
von einfachTobi
Bitte vollständigen Code posten. Was ist `index_range`? Was ist `s`? Was ist... usw.? Was sind das alles für Daten (-typen)? Ich vermute Pandas DataFrames. Ohne Beschreibung was da passieren soll und was passiert, wirds schwer hier zu helfen. Bitte auch den vollständigen Fehler posten.
Re: iloc und get_loc 'Key Error'
Verfasst: Mittwoch 18. Dezember 2019, 10:49
von potyh
data_vol= Daten für das Handelsvolumen
V_i = Handelsvolumen von Unternehmen i
Ich möchte gerne erreichen, dass ich mit i.loc/get.loc das Handelsvolumen für das Unternehmen 's' am Tag date_loc2 aus einer Tabelle ablese.
s nimmt den Wert eines Identifiers an.
Problem ist, dass 's' Identifier annehmen kann, die nicht in der Tabelle existieren.
Tabelle hat folgenden Aufbau:
Index=Datum, Spaltennamen=Identifier für Unternehmen, Zelleninhalt=Handelsvolumen
Meine Fehldermeldung lautet: Key Error 'AABC' (wobei 'AABC' ein Identifier ist)
Braucht ihr noch andere Infos?
Re: iloc und get_loc 'Key Error'
Verfasst: Mittwoch 18. Dezember 2019, 11:12
von sparrow
Die _vollständige_ Fehlermeldung. Denn die beinhaltet auch die Zeile, in der das Problem auftritt.
Welche für Daten da drin stehen ist nicht wichtig. Aber es ist wicht _was_ data_vol ist. Also was für ein Typ.
Re: iloc und get_loc 'Key Error'
Verfasst: Mittwoch 18. Dezember 2019, 11:16
von Sirius3
Den KeyError fängst Du aber ab, die Fehlermeldung kann also nicht kommen. Oder sie kommt an einer ganz anderen Stelle, dann brauchen wir aber den kompletten Traceback und den relevanten Code dazu.
Warum heißt eine Tabelle, die das Handelsvolument enthält data_vol und nicht trading_volume?
Warum heißt ein Unternehmen einfach nur `i`. Und was soll die for-Schleife, wenn das Unternehmen `i` ja anscheinend fix ist und Du direkt auf die passende Spalte über den Identifier zugreifen könntest?