gpt4 book ai didi

python - 使用 Dataframe 单元格值设置另一个具有相同尺寸的 Dataframe 的样式

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:53 24 4
gpt4 key购买 nike

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo'.split(),
'B': 'one one two'.split(),
'C': np.arange(3), 'D': np.arange(3) * 2})

j = [{'bgcolor': "#55aa2a"}, {'bgcolor': "#d42a2a"}, {'bgcolor': "#d42a2a"}]
df2 = pd.DataFrame({'E': j, 'F': j, 'G': j, 'H': j})

上面的代码产生了两个数据帧,df1 是一个标准帧,df2 是由字典组成的帧(每个单元格都有一个字典作为它的值)。

我想使用 df2 的单元格来设置 df 单元格的样式,即单元格 df[0,1]将采用单元格 df2[0,1] 的值并将其用作其样式

示例:

def highlight(df,df2):
df[0,1] = '{}'.format(df2[0,1])
return df

(应用于整个框架除外)

这应该将 df[0,1] 的背景颜色设置为 df2[0,1]="55aa2a" 但返回一个 KeyError 在调用 df = df.style.apply(highlight, df2=df2).render()

之后

是否可以使用 df2 的单元格来设置 df1 的单元格样式?

最佳答案

您可以更改字符串值的格式,然后返回具有相同列名的 DataFrame(索引值也必须相同):

df2 = df2.applymap(lambda x: 'background-color: {}'.format(x.get('bgcolor')))
print (df2)
E F \
0 background-color: #55aa2a background-color: #55aa2a
1 background-color: #d42a2a background-color: #d42a2a
2 background-color: #d42a2a background-color: #d42a2a

G H
0 background-color: #55aa2a background-color: #55aa2a
1 background-color: #d42a2a background-color: #d42a2a
2 background-color: #d42a2a background-color: #d42a2a

def highlight(x):
d = dict(zip(df2.columns, x.columns))
return df2.rename(columns=d)

或者:

def highlight(x):
return pd.DataFrame(df2.values, columns=x.columns)

df.style.apply(highlight, axis=None)

df

关于python - 使用 Dataframe 单元格值设置另一个具有相同尺寸的 Dataframe 的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54330809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com