Я пытаюсь прочитать Google Sheet с помощью pandas pd.read_csv(), однако, когда столбцы содержат ячейки с текстом и другие ячейки с числовыми значениями, текст не читается. Мой код:
def build_sheet_url(doc_id, sheet_id):
return r"https://docs.google.com/spreadsheets/d/{}/gviz/tq?tqx=out:csv&sheet = {}".format(doc_id, sheet_id)
sheet_url = build_sheet_url(doc_id, sheet_name)
df = pd.read_csv(sheet_url)
> df
Column1 Column2
0 12 21
1 13 22
2 14 23
3 15 24
Вот как выглядит электронная таблица:
Я пытался использовать dtype=str и dtype=object, но не смог отобразить текст в моем фрейме данных. Указание кодировки encoding='utf-8' тоже не помогло.

Это связано с тем, что запрос не поддерживает смешанные типы данных:
Тип данных. Поддерживаемые типы данных: строка, число, логическое значение, дата, дата, время и время дня. Все значения столбца будут иметь тип данных, соответствующий типу столбца, или нулевое значение. Эти типы похожи, но не идентичны типам JavaScript.
Используйте конечную точку /export (или конечную точку drive-api):
https://docs.google.com/spreadsheets/d/[SPREADSHEET_ID]/export?format=[FORMAT]&gid=(SHEET_ID)&range=(A1NOTATION)
@NDen Подумайте о том, чтобы принять ответ, нажав на галочку слева от этого сообщения. Что касается (SHEET_ID), это должен быть фактический идентификатор листа. Вы можете увидеть адрес: &gid=(SHEET_ID)
При использовании
&gid=(SHEET_ID)я получаюHTTPError: Bad Request, но замена на&sheet=(SHEET_ID)решила проблему. Спасибо @Мастер!