Проблема: У меня есть инкрементные данные, которые мне нужно добавлять в свою таблицу Google в начале каждого месяца. Код, который я пробовал:
Пробная версия 1
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']
#creds.json is the credentials file
credentials = ServiceAccountCredentials.from_json_keyfile_name('drd_creds.json', scope)
gd = gc.authorize(credentials)
wks = gd.open_by_key('1lONS0lTy-XXXXXXXXXXX').worksheet("worksheet_name")
set_with_dataframe(worksheet,df_adsets)
Приведенный выше код не добавляется, но перезаписывает электронную таблицу.
Пробная версияII : В соответствии с указаниями, приведенными в Добавление фрейма данных pandas к электронной таблице Google
wks = gd.open_by_key('1lONS0lTy-XXXXXXXXXXX').worksheet("worksheet_name")
existing = get_as_dataframe(wks)
updated = existing.append(df_adsets,sort=True)
set_with_dataframe(wks,updated)
Problem: The method gets all the rows and columns of the spreadsheet
(empty ones too as NAN) and when it appends the data there is a weird formatting done for e.g.
1. original value: 23843372759610279 changes to 2.38E+16
2. Column orders are changed to alphabetic order
3. Also, it seems to be a very crude method of getting all the data then appending then writing back.
Существует ли какая-либо функция из gspread или любой другой библиотеки для добавления значений /Фрейм данных напрямую, а не перезаписывать? (Я не хочу писать отдельные строки, а просто записать весь df из следующей пустой строки).