Я получаю данные дисбаланса цены/объемы ENTSO-E с помощью entsoe-py и сталкиваюсь с сбоем синтаксического анализатора, поскольку поле
содержит запятую-разделитель тысяч (например, "1,346"), которую int() не может проанализировать.
Среда:
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'
Я также иногда вижу следующую ошибку, когда вышеуказанное не происходит:
), а не простое целое число. Я не вижу в entsoe-py возможности очистить это или запросить другой числовой формат.
Ошибка дублирования индекса, похоже, возникает из-за того, что несколько используют одну и ту же комбинацию (метка времени, позиция, категория) в полезных данных ZIP (не мой основной блокировщик, но упоминаю для полноты).
Вопросы
Есть ли в entsoe-py рекомендуемый способ обработки разделителей языковых стандартов/тысяч в
?
например, документированный флаг или известная версия, которая не анализирует
с помощью int() напрямую?
Если нет, то какой самый простой обходной путь?
Monkey-исправьте синтаксический анализатор, чтобы удалить запятые перед int()?
Предварительно загрузите ZIP, очистите XML (замените , в
), а затем вызвать внутренний синтаксический анализатор?
Еще один подход, который мне не хватает?
Есть ли какие-либо рекомендации относительно "Индекс содержит повторяющиеся записи" при разбивке по ['position','category']?
Является ли дедупликация по (['timestamp','position','category']) с первым правильным подходом или есть лучшая семантическая группировка?
Я получаю данные дисбаланса [b]цены/объемы[/b] ENTSO-E с помощью entsoe-py и сталкиваюсь с сбоем синтаксического анализатора, поскольку поле содержит [b]запятую-разделитель тысяч[/b] (например, "1,346"), которую int() не может проанализировать. Среда: [list] [*]Windows 10, Python 3.11.9
[*]pandas 2.2.x
[*][code]entsoe-py[/code] 0.6.10 (также воспроизводится последней версией по состоянию на ноябрь 2025 г.)
[*]Локальный стандарт — EN-GB; запросы, сделанные из официального API прозрачности через EntsoePandasClient
[/list] [b]Минимальное воспроизведение:[/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]Обратная трассировка (отрывок):[/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] Я также иногда вижу следующую ошибку, когда вышеуказанное не происходит: [code]ValueError: Index contains duplicate entries, cannot reshape # from df.set_index(['position','category']).unstack() [/code] [b]Что я пробовал / Примечания[/b] [list] [*]Очистка количества постфактум не помогает (сбой происходит внутри синтаксического анализатора до того, как я получаю кадр данных).
[*]Временные метки — tz='UTC'; переключение на Etc/UTC не меняет поведение.
[*]Похоже, что XML, возвращаемый API, иногда включает с запятыми ([code]1,346[/code]), а не простое целое число. Я не вижу в entsoe-py возможности очистить это или запросить другой числовой формат.
[*]Ошибка дублирования индекса, похоже, возникает из-за того, что несколько используют одну и ту же комбинацию (метка времени, позиция, категория) в полезных данных ZIP (не мой основной блокировщик, но упоминаю для полноты).
[/list] [b]Вопросы[/b] [list] [*]Есть ли в entsoe-py рекомендуемый способ обработки [b]разделителей языковых стандартов/тысяч[/b] в ? [list] например, документированный флаг или известная версия, которая не анализирует с помощью int() напрямую? [/list]
[*]Если нет, то какой [b]самый простой обходной путь[/b]? [list] Monkey-исправьте синтаксический анализатор, чтобы удалить запятые перед int()?
[*]Предварительно загрузите ZIP, очистите XML (замените , в ), а затем вызвать внутренний синтаксический анализатор?
[*]Еще один подход, который мне не хватает?
[/list]
[*]Есть ли какие-либо рекомендации относительно [b]"Индекс содержит повторяющиеся записи"[/b] при разбивке по ['position','category']? [list] Является ли дедупликация по (['timestamp','position','category']) с первым правильным подходом или есть лучшая семантическая группировка? [/list]