У меня есть файл 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. Я попытался выполнить поиск, чтобы выяснить, возможно, были скрытые символы, но я не знаю, как сказать.