Чтение / запись фрейма данных на листы Google с помощью pygsheets

Каков правильный программный поток для записи фрейма данных разных размеров на одну и ту же рабочую таблицу, но убедитесь, что видны только самые последние записанные значения данных?

Вот моя оригинальная последовательность:

gc = pygsheets.authorize(outh_file=oauth_file)
sh = gc.open(sheet_name)
wks = sh.worksheet_by_title(wks_name)
wks.set_dataframe(df, (1, 1))

Проблема с приведенной выше последовательностью состоит в том, что если 1-я запись была 3800 строк x 12 столбцов, а 2-я запись составляла 2400 строк x 12 столбцов, то в wks все равно будут отображаться данные предыдущей записи для строк выше 2400.

Мое второе решение (в основном взломать, чтобы заставить его работать на меня):

gc = pygsheets.authorize(outh_file=oauth_file)
sh = gc.open(spreadsheet_name)
wks = sh.worksheet_by_title(sheet_name)
sh.del_worksheet(wks)
sh.add_worksheet(sheet_name, rows=len(df) + 1, cols=len(df.columns))
wks = sh.worksheet_by_title(sheet_name)
wks.set_dataframe(df, (1, 1))

Вышеприведенная последовательность в основном делает то, что я хочу, но мне не нравится удалять wks (я теряю все мое ручное форматирование). Я знаю, что должен быть правильный способ достичь этого, но я не очень хорошо знаю API Pygsheets.

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

TIA, --Rj

1 ответ

fit=True будет в основном изменять размер листа, чтобы соответствовать вашему фрейму данных. так что если вы хотите сохранить лист в том же размере, вы можете очистить лист перед следующей записью. это будет проще, чем ваше второе решение. Также, если вы просто хотите очистить диапазон, который вы написали ранее, вы можете передать диапазон, чтобы очистить функцию.

wks.set_dataframe(df, (1, 1))
wks.clear()
wks.set_dataframe(df, (1, 1))
Другие вопросы по тегам