gpt4 book ai didi

python - multiIndex 上的 Pandas 造型器

转载 作者:太空宇宙 更新时间:2023-11-03 20:38:10 48 4
gpt4 key购买 nike

我想在 multiIndex 的某个索引上设置 panda DataFrame 的样式。正常情况下,pd.IndexSlice 应该按照 this 工作。回答。

但是,如下所示,这似乎不起作用:

import pandas as pd
import itertools
import numpy as np
cv = ['data1_1','data1_2','data1_3']
param = ['data2_1', 'data2_2']
combi = tuple(itertools.product(cv,param))
columns = pd.MultiIndex.from_tuples(combi)
myData = pd.DataFrame(np.zeros((4,6), dtype=bool)*False, columns = columns)

myData.iloc[0,0] = True

def highligh(val):
if val == True:
color = 'red'
else:
color = 'white'
return 'background-color: {}'.format(color)

myColoredData = myData.style.apply(highligh, subset=pd.IndexSlice[:,pd.IndexSlice[:,'data2_2']])


import seaborn as sns
cm = sns.light_palette("green", as_cmap=True)
myColoredData2 = myData.style.background_gradient(cmap=cm, subset=pd.IndexSlice[:,pd.IndexSlice[:,'data2_2']])

myData.loc[pd.IndexSlice[:,pd.IndexSlice[:,'data2_2']]]

myColoredData.to_excel('colored.xlsx')
myColoredData2.to_excel('colored2.xlsx')

to_excel 方法向我抛出一个错误:

unhashable type: 'slice'

最佳答案

到目前为止,这似乎不起作用,如 stated here :

Note that this indexer previously worked in pandas version 0.22, but a regression has been introduced in 0.24.2

有趣的是,我在 0.24.2 中遇到了类似的问题,但在 0.23.4 中没有。

关于python - multiIndex 上的 Pandas 造型器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57021336/

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