Несколько таблиц с Golid - PullRequest
       80

Несколько таблиц с Golid

0 голосов
/ 27 апреля 2020

Я действительно новичок с Python, и я работаю с Gspread и Google Sheets. У меня есть несколько таблиц, из которых я хотел бы получить данные. Все они имеют одинаковое имя с добавленным числовым значением (например, SpreadSheet (1), SpreadSheet (2), SpreadSheet (3) и т. Д. c.)

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

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

titles_list = []
for spreadsheet in client.openall():
    titles_list.append(spreadsheet.title)

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Используя сочетание как вашего исходного кода, так и ответа @ Tanaike, у вас есть фрагмент кода, который делает то, что вы ожидаете.

# Create an authorized client
client = gspread.authorize(credentials)
# Create a list to hold the values
values = []
# Get all spreadsheets
for spreadsheet in client.openall():
    # Get spreadsheet's worksheets
    worksheets = spreadsheet.worksheets()
    for ws in worksheets:
        # Append the values of the worksheet to values
        values.extend(ws.get_all_values())
# create df from values
df = pd.DataFrame(values)
print(df)

Надеюсь, я все понял.

0 голосов
/ 28 апреля 2020

Я считаю, что ваша цель заключается в следующем.

  • Вы хотите объединить значения, полученные со всех листов в электронной таблице Google.
  • Вы хотите преобразовать полученные значения в кадр данных .
  • На каждом листе есть 4 столбца, 100 строк и нет строк заголовка.
  • Вы хотите добиться этого, используя gspread с python.
  • Вы уже смогли получить и поместить значения для Google Spreadsheet с помощью API Sheets.

Для этого, как насчет этого ответа?

Поток:

  1. Получить все листы в Таблица Google с использованием worksheets().
  2. Извлечение всех значений со всех листов с использованием get_all_values() и объединение значений.
  3. Преобразование полученных значений в кадр данных.

Пример сценария:

spreadsheetId = "###"  # Please set the Spreadsheet ID.

client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
worksheets = spreadsheet.worksheets()
values = []
for ws in worksheets:
    values.extend(ws.get_all_values())
df = pd.DataFrame(values)
print(df)

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...