python – 具有多索引的Pandas样式对象

python – 具有多索引的Pandas样式对象,第1张

概述我正在使用样式器格式化pandas数据框以突出显示列和格式数字.我还想应用多索引更清晰,愉快和易读.由于我将Styler应用于列的子集,因此无法使用多索引. 例: arrays = [np.hstack([['One']*2, ['Two']*2]) , ['A', 'B', 'C', 'D']]columns = pd.MultiIndex.from_arrays(arrays)data = 我正在使用样式器格式化pandas数据框以突出显示列和格式数字.我还想应用多索引更清晰,愉快和易读.由于我将Styler应用于列的子集,因此无法使用多索引.

例:

arrays = [np.hstack([['One']*2,['Two']*2]),['A','B','C','D']]columns = pd.MultiIndex.from_arrays(arrays)data =  pd.DataFrame(np.random.randn(5,4),columns=List('ABCD'))data.columns = columns import seaborn as snscm = sns.light_palette("green",as_cmap=True)data.style.background_gradIEnt(cmap=cm,subset=['A'])

有没有办法对列进行子集,以便样式器可以工作.根据以下来源,这是实现的,但没有例子,所以我很难理解如何应用它:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.formats.style.Styler.html
https://github.com/pandas-dev/pandas/issues/11655

谢谢 !

解决方法 我认为你可以使用 pd.IndexSlice[…]方法:

data.style.background_gradIEnt(cmap=cm,subset=pd.IndexSlice[:,pd.IndexSlice[:,'A']])

演示:

In [5]: data.loc[pd.IndexSlice[:,'A']]]Out[5]:        One          A0 -0.8084831  0.0093712  0.9771383 -0.8755544 -0.052424In [6]: dataOut[6]:        One                 Two          A         B         C         D0 -0.808483 -2.280683  0.576145  0.6496881  0.009371  0.721510  1.013764 -0.1574932  0.977138  1.441392  1.718618 -0.3208263 -0.875554 -1.060507  1.457075  0.5701954 -0.052424 -0.742842 -0.203830 -1.202091

在Jupyter:

总结

以上是内存溢出为你收集整理的python – 具有多索引的Pandas样式对象全部内容,希望文章能够帮你解决python – 具有多索引的Pandas样式对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存