Имеется функция возвращающая DF:
def get_data_player(json): # возвращает ally_code & player_name
data = json['data']
data = pd.json_normalize(data)
data = pd.DataFrame(
data=data,
index=None,
columns=[
'ally_code', 'name']
)
data.set_axis(
['ally_code', 'player_name'],
axis='columns',
inplace=True
)
return data
Полученный фрейм собирается с другими в большую таблицу и прекрасно выводится на печать, сохраняется в scv и xlsx.
Однако появилась необходимость записать его в google sheets. При записи возникает ошибка.
Запись произвожу так (другие фреймы прекрасно записываются аналогичным образом):
df2 = get_data_players()
wks_name = 'ally_codes_and_names'
d2g.upload(df2, spreadsheet_id, wks_name, credentials=credentials, row_names=True)
Ошибка:
Traceback (most recent call last):
File "/home/oksana/Рабочий стол/the_pit_test/main.py", line 158, in <module>
main()
File "/home/oksana/Рабочий стол/the_pit_test/main.py", line 149, in main
d2g.upload(df2, spreadsheet_id, wks_name, credentials=credentials, row_names=True)
File "/home/oksana/.local/lib/python3.8/site-packages/df2gspread/df2gspread.py", line 144, in upload
if not pd.isnull(df[col][idx]):
File "/home/oksana/.local/lib/python3.8/site-packages/pandas/core/generic.py", line 1329, in __nonzero__
raise ValueError(
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
По найденной мной информации, ошибка возникает в связи с использованием операторов or и and, в которых python требуют истинностных значений. Однако я их не использую.
Как избежать ошибки изменив функцию для получения фрейма или изменив саму запись фрейма в GS?