我有两个大小相同的 Dataframe (3乘3),一个是逻辑(真/假),另一个是数字:
我的脚本允许用户从逻辑矩阵中输入一个特定的坐标,以便将其从False更改为True(如果它已经是True,则忽略该命令)。之后,我想应用style.applymap函数为数值df中对应于True值的元素着色。
style.applymap(func, subset=((row), [columns])
因此,我的方法是保存True值的索引,并使用数字df将它们添加到子集中。但是,我不能在子集字段上添加特定的索引,也不能在子集参数中添加多行。到目前为止,我的代码是这样的:
Occupato = pd.DataFrame(np.zeros(shape = (3, 3)))
for i in range(3):
Occupato = Occupato.astype({i: bool})
normale = pd.DataFrame(np.random.randint(0,10,size=(3, 3)), columns=list('ABC'))
def colore(v, colore):
# if v:
return f"background-color: {colore};"
idx = ('Insert coordinates as [x, y]: ')
Occupato.iloc[idx[0], idx[1]]
normale.style.applymap(colore, colore='blue', subset = (row), [columns])
现在,我发现看到子集的语法很奇怪,行使用括号()-只接受一个整数-而列使用方括号[]并允许多个值。先谢谢你了。
我试过:
mydf.style.applymap(colore, colore='blue', subset = (rows), [columns])
我期望获得在子集上指定的列表元素并将其着色为蓝色。相反,我得到了:
KeyError: "None of [Index([(1, 2)], dtype='object')] are in the [index]"
1条答案
按热度按时间smtd7mpg1#
我会这样做:
输出: