@ user545424 Спасибо, что предложили выложить короткий пример.Тем самым я решил свою проблему.
Моя первоначальная проблема заключалась в том, что мне приходилось разделять кадры данных, один для данных, а другой для стиля.Придумывая короткий пример, я нашел способ сделать все с одним фреймом данных (я очень плохо знаком с python и pandas).
Исправление, которое я придумал, заключается в создании оригинального фрейма данных, в том числе ".style ".
Итак, вместо этой команды (которую я использовал):
df = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD'))
Теперь я создаю df, используя эту команду:
df = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD')).style
Теперь, когда я хочу получить доступ / изменить часть данных df, я называю ее «df.data», а когда я хочу применить стилевую часть df, я называю ее «df.apply».Таким образом, я могу получить доступ как к данным, так и к стилю с одного фрейма данных.Вот пример кода, который я писал, когда обнаружил свой ответ:
import numpy as np
import pandas as pd
def colorCell(df, row=None, column=None, color="red"):
color = f"background-color: {color}; font-weight: bold"
dfTemp = pd.DataFrame("", index=df.index, columns=df.columns)
dfTemp.at[row,column] = color
return dfTemp
# Create the dataframe including styles.
df = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD')).style
# Update location [1,"A"] and set it to "red".
df.data.loc[1,"A"] = 999
df.apply(colorCell, row=1, column="A", color="red", axis=None)
# Update location [2,"B"] and set it to "yellow".
df.data.loc[2,"B"] = 999
df.apply(colorCell, row=2, column="B", color="yellow", axis=None)
Как я уже говорил выше, я очень плохо знаком с Python и даже новее с пандами.Так что, если вышеперечисленное работает, есть ли лучший способ сделать это?
Спасибо!