Выделите ячейки в столбце в электронной таблице Google, когда значение превышает пороговое значение с помощью python

Вот упрощенный пример моих кодов и скриншот результатов, которые я хочу получить в электронной таблице Google. Я надеюсь либо сохранить стиль фрейма данных в электронной таблице Google, либо применить стиль таблицы, чтобы преуспеть с использованием python. Или используйте gspread-форматирование, чтобы выделить фон ячейки, когда значение выше порогового значения.

Может ли кто-нибудь дать мне пример, как это сделать? Спасибо!

cars = {'Brand': ['Honda Civic','Ferrari','Toyota Corolla','Ford Focus','Audi A4','TESLA','Ford Fusion','BENZ'],
        'Price': [22000,625000,25000,27000,35000,55000,28000,51000]}
df_car = pd.DataFrame(cars, columns = ['Brand', 'Price'])

def _color_if_above_budget(s):
    return ['background-color: red' if val >50000 else '' for val in s]
s=df_car.style.apply(_color_if_above_budget, subset=['Price'])
ws=**worksheet
        gd.set_with_dataframe(worksheet=ws,dataframe=df_car,include_index=False,include_column_header=True,resize=True)

Ваш код не является минимальным воспроизводимым примером

Cooper 21.12.2020 18:10

По теме: github.com/robin900/…

TheMaster 21.12.2020 18:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
2
1 663
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте gspread_dataframe для установки данных на листы и gspread_formatting для форматирования содержимого листов с условием.

Попробуйте этот код ниже:

import gspread
import pandas as pd
from gspread_dataframe import set_with_dataframe
from gspread_formatting import *

gc = gspread.service_account()
sh = gc.open("example").sheet1
cars = {'Brand': ['Honda Civic','Ferrari','Toyota Corolla','Ford Focus','Audi A4','TESLA','Ford Fusion','BENZ'],
        'Price': [22000,625000,25000,27000,35000,55000,28000,51000]}
df_car = pd.DataFrame(cars, columns = ['Brand', 'Price'])
set_with_dataframe(sh, df_car)

rule = ConditionalFormatRule(
    ranges=[GridRange.from_a1_range('B2:B', sh)],
    booleanRule=BooleanRule(
        condition=BooleanCondition('NUMBER_GREATER', ['50000']),
        format=CellFormat(textFormat=textFormat(bold=True), backgroundColor=Color(1,0,0))
    )
)
rules = get_conditional_format_rules(sh)
rules.append(rule)
rules.save()

Выход:

Использованная литература:

gspread-formatting (Условное форматирование)

gspread-dataframe

это очень полезно! Спасибо. У меня есть вопрос по этому 'GridRange.from_a1_range('B2:B', sh)]'. есть ли способ использовать имя столбца, а не букву «B»? Поскольку мне нужно применить это условное форматирование ко многим столбцам, мне трудно назвать буквы («B», «AZ» или «CZ») для каждого столбца. Если нет, то можно ли определить, какие буквы соответствуют имени каждого столбца? Спасибо

user7264299 22.12.2020 04:32

К сожалению, ConditionalFormatRule принимает только GridRange в качестве значения для ranges

Nikko J. 22.12.2020 16:36

Другие вопросы по теме