Ich rufe das ENTSO-E-Ungleichgewicht Preise/Volumen mit entsoe-py ab und stoße auf einen Parser-Absturz, weil das Feld
ein Tausendertrennzeichen (z. B. „1,346“) enthält, das int() nicht analysieren kann.
Umgebung:
File ...\entsoe\parsers.py", line 665, in _parse_imbalance_volumes_timeseries
position = int(point.find('position').text)
ValueError: invalid literal for int() with base 10: '1,346'
Ich sehe auch gelegentlich einen Folgefehler, wenn das oben Genannte nicht passiert:
) anstelle einer einfachen Ganzzahl. Ich kann in entsoe-py keine Option sehen, um dies zu bereinigen oder ein anderes Zahlenformat anzufordern.
Der Fehler beim doppelten Index scheint von mehreren zu stammen, die dieselbe (Zeitstempel, Position, Kategorie)-Kombination in der ZIP-Nutzlast teilen (nicht mein Hauptblocker, aber der Vollständigkeit halber erwähnt).
Fragen
Gibt es in entsoe-py eine empfohlene Möglichkeit, locale/tausender-Trennzeichen in
zu verarbeiten?
z. B. ein dokumentiertes Flag oder eine bekannte Version, die
nicht mit int() analysiert direkt?
Wenn nicht, was ist die sauberste Problemumgehung?
Monkey-Patch des Parsers, um Kommas vor int() zu entfernen?
Laden Sie die ZIP-Datei vorab herunter, bereinigen Sie XML (ersetzen Sie , in
), dann den internen Parser aufrufen?
Noch ein Ansatz, der mir fehlt?
Irgendwelche Hinweise zu „Index enthält doppelte Einträge“ beim Entstapeln für ['position','category']?
Ist die Deduplizierung nach (['timestamp','position','category']) with first der richtige Ansatz oder gibt es eine bessere semantische Gruppierung?
Ich rufe das ENTSO-E-Ungleichgewicht [b]Preise/Volumen[/b] mit entsoe-py ab und stoße auf einen Parser-Absturz, weil das Feld ein [b]Tausendertrennzeichen[/b] (z. B. „1,346“) enthält, das int() nicht analysieren kann. Umgebung: [list] [*]Windows 10, Python 3.11.9
[*]Pandas 2.2.x
[*][code]entsoe-py[/code] 0.6.10 (auch spätestens ab November 2025 reproduziert)
[*]Gebietsschema ist en-GB; Anfragen von der offiziellen Transparency API über EntsoePandasClient
[/list] [b]Minimale Reproduktion:[/b] [code]import keyring import pandas as pd from entsoe import EntsoePandasClient
start = pd.Timestamp('2024-01-01 00:00:00', tz='UTC') end = pd.Timestamp('2024-12-31 23:59:59', tz='UTC')
# France example (happens on other countries/years too) df = client.query_imbalance_volumes(country_code='FR', start=start, end=end) print(df.shape) [/code] [b]Traceback (Auszug):[/b] [code]File ...\entsoe\parsers.py", line 665, in _parse_imbalance_volumes_timeseries position = int(point.find('position').text) ValueError: invalid literal for int() with base 10: '1,346' [/code] Ich sehe auch gelegentlich einen Folgefehler, wenn das oben Genannte nicht passiert: [code]ValueError: Index contains duplicate entries, cannot reshape # from df.set_index(['position','category']).unstack() [/code] [b]Was ich versucht habe / Hinweise[/b] [list] [*]Reinigungsmenge post-hoc hilft nicht (es kommt zu einem Absturz im Parser, bevor ich einen Datenrahmen erhalte).
[*]Zeitstempel sind tz='UTC'; Der Wechsel zu Etc/UTC ändert das Verhalten nicht.
[*]Es sieht so aus, als ob das von der API zurückgegebene XML manchmal mit Kommas enthält ([code]1,346[/code]) anstelle einer einfachen Ganzzahl. Ich kann in entsoe-py keine Option sehen, um dies zu bereinigen oder ein anderes Zahlenformat anzufordern.
[*]Der Fehler beim doppelten Index scheint von mehreren zu stammen, die dieselbe (Zeitstempel, Position, Kategorie)-Kombination in der ZIP-Nutzlast [url=viewtopic.php?t=13628]teilen[/url] (nicht mein Hauptblocker, aber der Vollständigkeit halber erwähnt).
[/list] [b]Fragen[/b] [list] [*]Gibt es in entsoe-py eine empfohlene Möglichkeit, [b]locale/tausender-Trennzeichen[/b] in zu verarbeiten? [list] z. B. ein dokumentiertes Flag oder eine bekannte Version, die nicht mit int() analysiert direkt? [/list]
[*]Wenn nicht, was ist die [b]sauberste Problemumgehung[/b]? [list] Monkey-Patch des Parsers, um Kommas vor int() zu entfernen?
[*]Laden Sie die ZIP-Datei vorab herunter, bereinigen Sie XML (ersetzen Sie , in ), dann den internen Parser aufrufen?
[*]Noch ein Ansatz, der mir fehlt?
[/list]
[*]Irgendwelche Hinweise zu [b]„Index enthält doppelte Einträge“[/b] beim Entstapeln für ['position','category']? [list] Ist die Deduplizierung nach (['timestamp','position','category']) with first der richtige Ansatz oder gibt es eine bessere semantische Gruppierung? [/list]
Ich habe pd.read_html erfolgreich verwendet für die meisten Webseiten, die ich scanne, aber das Folgende löst den Fehler aus, auf den verwiesen wird:
'
Wenn ich die Quelle der Webseite überprüfe,...
Vor kurzem musste ich Python auf meinem Mac komplett neu installieren. Dabei versuche ich, Pytables mithilfe von Pip-Installationstabellen zu installieren, erhalte jedoch eine seltsame Fehlermeldung,...