Задать вопрос
Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...

Почему не срабатывают некоторые параметры pandas.read_excel?

Наверняка лузерский вопрос, но что-то не гуглятся ответы.

Не срабатывают параметры convert_float, date_parser и parse_dates.

  • convert_float=True -- не все целочисленные значения excel превращаются в целочисленные. Часть остается с плавающей точкой. Например, значение 10 в excel превращается в 10.0... И видно, что в общем тут целое, но почему-то pandas не преобразовало. А другие значения, которые при convert_float=False не преобразовывались -- действительно становятся int
  • Как работают date_parser и parse_dates -- вообще не понял. Установка parse_dates в True или False -- ничего не меняет. В обоих случаях даты превращаются в целочисленные значения (иногда с отрицательным знаком, и даже convert_float на них не влияет). Как заставить срабатывать функцию через date_parser -- не понял.


Для примера код.

import pandas
from datetime import datetime


def date_format(date):
    # return date.isoformat()
    return 'TEST'


def main():
    # ...
    # ...
    xls_imported = pandas.read_excel(args.XLS_FILE, sheet_name=4, na_values=None,
                                     convert_float=True, mangle_dupe_cols=True,
                                     date_parser=date_format, parse_dates=True)
  • Вопрос задан
  • 430 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@kamenyuga
convert_float - в pandas тип одинаков для всех значений в столбце - в столбце есть значение, которое нельзя преобразовать в int. Чаще всего такое бывает, когда в столбце пропущено значение, т.к. пустое значение - это нампаевский NaN типа float.

parse_dates - передается список номеров или названий столбцов, которые необходимо распарсить в дату - отдельные столбцы или группы столбцов, если дата распределена по нескольким.

date_parser - дефолтный парсер нормально работает, хотя и сильно увеличивает время загрузки данных. Имеет смысл парсить даты отдельно после загрузки, если объем большой.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽