Индекс списка вне границ / диапазона - PullRequest
0 голосов
/ 13 марта 2020

Мне нужно создать автоматический импорт отчетов. Они могут варьироваться между CSV-файлами и файлами Excel. Я получил часть, где csv считывается и разделяется (нужно разделить и изменить дату) работает. Моя проблема начинается, когда я пытаюсь прочитать Excel из Pycharm. Все это работает в блокноте jupyter, но, похоже, в pycharms встречается ошибка (я уже знаю, что не могу скопировать материал из jn в pych. Из-за отступов и прочего). Это мой код, и я хотел бы знать, где и почему мой индекс выходит за пределы диапазона. Дата указывается как «гггг / мм / дд»

datum = []
try:
    if df.columns[0] == "Day":
        for line in df["Day"]:
            date_emer = line.split("/")
            date_new = [date_emer[2], date_emer[1], date_emer[0]]
            date_new_join = "".join(date_new)
            datum.append(int(date_new_join))
            date_correct = datetime(year=int(date_new_join[0:4]), day=int(date_new_join[4:6]), month=int(date_new_join[6:8]))
            df["Day"] = date_correct
            print(df)
    elif df.columns[0] == "day":
        for line in df["day"]:
            date_emer = line.split("/")
            date_new = [date_emer[0], date_emer[1], date_emer[2]]
            date_new_join = "".join(date_new)
            datum.append(int(date_new_join))
            date_correct = datetime(year=int(date_new_join[0:4]), month=int(date_new_join[4:6]), day=int(date_new_join[6:8]))
            df["day"] = date_correct
            print(df)
    else:
        print("Unknown Column! Error!")
except Exception as e:
    print("Error Message: " +str(e))

Это обратная связь:

Traceback (most recent call last):
  File "sales_import_outbrain.py", line 99, in <module>
    raise e
  File "sales_import_outbrain.py", line 89, in <module>
    date_new = [date_emer[0], date_emer[1], date_emer[2]]
IndexError: list index out of range

1 Ответ

1 голос
/ 13 марта 2020
year,month,day = line.split("/")
date_correct = datetime(year=int(year), day=int(day), month=int(month))

Я думаю, вы можете напрямую использовать это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...