Длина столбца панд не соответствует исходному файлу - PullRequest
0 голосов
/ 05 июня 2019

У меня есть файл CSV, который я помещаю в DataFrame и использую его для создания файла XlsxWriter в рамках тренинга, который я создаю. Ну, на самом деле есть 2 файла CSV. Первый работает отлично, другой странный. Многие столбцы имеют длину более 20, но если посмотреть на CSV, то это примерно 7-10 символов.

Оригинальный код:

def get_col_widths(df:pd.DataFrame):
    """
    This takes in a DataFrame and returns a list of the sizes of each column for autofit.

    """
    cols = df.columns
    title_len_list = [len(col) for col in cols]
    col_len_list = []
    for col in cols:
        col_len_list.append(df[col].astype(str).map(len).max())
    # https://stackoverflow.com/a/40948355/10474024
    final_list = [max(val) + 4 for val in zip(title_len_list, col_len_list)]
    return final_list

Код, который я тестировал другим способом на случай, если что-то не так, но он дал тот же ответ:

col_widths = []
for col in df2.columns:
    col_widths.append(df2[col].apply(str).apply(lambda x: x.strip()).apply(len).max())
print(col_widths)
# [1, 1, 21, 23, 20, 22, 20, 21, 21, 22, 21, 21, 22, 22, 20, 22, 21, 21, 21, 22, 23, 22, 23, 22, 23, 21, 23, 23, 22, 23, 23, 23, 21, 23, 1]

Нет сообщения об ошибке, это просто увеличивает ширину столбцов в созданном XLSX. Я попытался выполнить поиск, чтобы выяснить, возможно, были скрытые символы, но я не знаю, как сказать.

...