#python #google-sheets #google-sheets-api
#python #google-sheets #google-sheets-api
Вопрос:
Итак, что я хочу сделать, это печатать только строки, в которых, например, цена (или любая другая ячейка «заголовка» строки больше или равна, скажем, 50.
Я не смог найти ответ в другом месте и не смог сделать это самостоятельно с помощью документации API. Я использую Google Sheets API v4, и моя цель основана на листах, которые содержат информацию о мобильной подписке, позволяют пользователю выбирать, что они хотят по цене, ГБ и т.д.
Кроме того, вот неофициальная документация, которую я нашел отличной, хотя она не содержала нужного мне ответа, может быть, у кого-то здесь получится?
Я попытался запустить следующий код, но он не сработал:
val_list = col5
d = wks.findall(>50) if cell.value >50 :
print (val_list)
Я надеюсь, что вы сможете мне помочь. Я новичок в Python.
Ответ №1:
Я думаю, у вас была правильная идея, но похоже findall
, что это для строк или регулярных выражений, а не для произвольного логического условия. Кроме того, некоторые синтаксические ошибки немного неточны, но этого следует ожидать, когда вы только начинаете.
Вот как я бы подошел к этому, используя только то, что я смог найти в вашем прикрепленном документе. Я сомневаюсь, что это самый быстрый или чистый способ сделать это, но я думаю, что это, по крайней мере, концептуально понятно:
#list of all values in 4th/price column
prices=wks.col_values(4)
#Remove nonnumeric characters from prices
prices=[p.replace('*','') for p in prices[1:]]
#Get indices of rows with price >=50
##i 2 to account for one indexing and removing header row
indices=[i 2 for i,p in enumerate(prices) if float(p)>=50]
#Print these rows
for i in indices:
row=wks.row_values(i)
print(row)
В дальнейшем с этим проектом вы можете поместить эти значения строк в dataframe, а не просто печатать их, чтобы вы могли провести дальнейший анализ этого подмножества данных.
Комментарии:
1. Вы потрясли, это сработало! Еще один небольшой вопрос, не могли бы вы указать или связать некоторую информацию о создании фрейма данных? Bc G Sheets Api ограничивает запрос примерно до 1000 запросов в секунду, и когда я закончу свой веб-сайт, это может (даже) стать проблемой.
2. @TechFan_Theo pandas — самая распространенная библиотека для этого в Python. Я ссылался на их страницу документации, но есть также много вопросов по StackOverflow, связанных с использованием pandas.
3. @TechFan_Theo рассмотрите возможность голосования / принятия, если это решило вашу проблему.