Самый быстрый/самый быстрый способ конвертировать фреймы данных pandas в таблицы слов ⇐ Python
Самый быстрый/самый быстрый способ конвертировать фреймы данных pandas в таблицы слов
Я пытаюсь преобразовать кадры данных pandas в таблицы слов. Однако для больших фреймов данных текущий процесс, который я использую, чрезвычайно медленный. Это связано с тем, что к каждой ячейке необходимо обращаться поочередно. Насколько мне известно, вызов функции table.cells в python-docx делает код таким медленным
Есть ли способ сделать это без необходимости вызывать каждую ячейку отдельно? Или есть другой более быстрый способ преобразовать фрейм данных pandas в таблицу слов?
def add_table(df): таблица = doc.add_table(df.shape[0]+1+(df.columns.nlevels -1), df.shape[1]) table.style = 'Сетка таблицы' #Добавить строки заголовков для таблиц с более чем одним заголовком если df.columns.nlevels > 1: для k в диапазоне (df.columns.nlevels): для j, ячейка в перечислении (table.rows[k].cells): ячейка.текст = ул(df.columns[j][k]) еще: # добавляем строки заголовков. для j в диапазоне (df.shape[-1]): table.cell(0,j).text = df.columns[j] # добавляем остальную часть фрейма данных для я в диапазоне (df.shape[0]): для j, ячейка в enumerate(table.rows[i+1+(df.columns.nlevels -1)].cells): cell.text = str(df.values[i, j]) входные данные:
Число Описание 0 301 УБЫТ 1 1 302 УБЫТ 2 2 303 УБЫТ 3 3 304 УБЫТ 4 4 305 УБЫТ 5 ... ... ... 2131 9108 УБЫТ 6 2132 9109 УБЫТ 7 2133 9110 УБЫТ 8 2134 9111 УБЫТ 9 2135 9112 УБЫТ 10 ожидаемый результат:
Онемение Описание 301 Описание 1 302 Описание 2 303 Описание 3 304 Описание 4 305 Описание 5
Изменить: Нашел отличное решение, которое вызывает функцию table.cells только один раз, а затем перебирает этот список объектов ячеек: https://github.com/python-openxml/pytho ... issues/174
Я пытаюсь преобразовать кадры данных pandas в таблицы слов. Однако для больших фреймов данных текущий процесс, который я использую, чрезвычайно медленный. Это связано с тем, что к каждой ячейке необходимо обращаться поочередно. Насколько мне известно, вызов функции table.cells в python-docx делает код таким медленным
Есть ли способ сделать это без необходимости вызывать каждую ячейку отдельно? Или есть другой более быстрый способ преобразовать фрейм данных pandas в таблицу слов?
def add_table(df): таблица = doc.add_table(df.shape[0]+1+(df.columns.nlevels -1), df.shape[1]) table.style = 'Сетка таблицы' #Добавить строки заголовков для таблиц с более чем одним заголовком если df.columns.nlevels > 1: для k в диапазоне (df.columns.nlevels): для j, ячейка в перечислении (table.rows[k].cells): ячейка.текст = ул(df.columns[j][k]) еще: # добавляем строки заголовков. для j в диапазоне (df.shape[-1]): table.cell(0,j).text = df.columns[j] # добавляем остальную часть фрейма данных для я в диапазоне (df.shape[0]): для j, ячейка в enumerate(table.rows[i+1+(df.columns.nlevels -1)].cells): cell.text = str(df.values[i, j]) входные данные:
Число Описание 0 301 УБЫТ 1 1 302 УБЫТ 2 2 303 УБЫТ 3 3 304 УБЫТ 4 4 305 УБЫТ 5 ... ... ... 2131 9108 УБЫТ 6 2132 9109 УБЫТ 7 2133 9110 УБЫТ 8 2134 9111 УБЫТ 9 2135 9112 УБЫТ 10 ожидаемый результат:
Онемение Описание 301 Описание 1 302 Описание 2 303 Описание 3 304 Описание 4 305 Описание 5
Изменить: Нашел отличное решение, которое вызывает функцию table.cells только один раз, а затем перебирает этот список объектов ячеек: https://github.com/python-openxml/pytho ... issues/174
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение