Самый быстрый/самый быстрый способ конвертировать фреймы данных pandas в таблицы словPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Самый быстрый/самый быстрый способ конвертировать фреймы данных pandas в таблицы слов

Сообщение Anonymous »


Я пытаюсь преобразовать кадры данных 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»