对齐熊猫条形图样式

时间:2018-04-26 21:39:57

标签: pandas dataframe alignment bar-chart

请我查看以下文档: https://pandas.pydata.org/pandas-docs/stable/style.html 部分"条形图"但是当我尝试在这个简单的数据框架中使用相同的代码时,似乎出现了问题。 我的代码如下:

import pandas as pd
df = pd.DataFrame([[0,0,19],[0,-3,16],[1,0,21]], columns = ["5D Net Chg","20D Net Chg","60D Net Chg"] )
df.style.bar(subset=["5D Net Chg","20D Net Chg","60D Net Chg"], align='mid', color=['#d65f5f', '#5fba7d'])

如果您运行此代码,您应该看到我看到的内容,即: * -3细胞是完全红色的,而我希望从细胞中间开始看到一个红色条 *值为1的单元格为绿色。鉴于数据帧中的最大值为21,我希望看到从单元格中间开始出现一个小绿条。

我该怎么做才能让它看起来更像是"条件格式"我们在excel中的数据栏? 感谢

2 个答案:

答案 0 :(得分:0)

你想要的是在单元格的中间对齐值0。所以你应该选择align='zero'。请注意,对齐按列方式工作。

import pandas as pd
df = pd.DataFrame([[0,0,-5],[0,-3,16],[1,2,21]], columns = [1,2,3] )
df.style.bar(subset=[1,2,3], align='zero', color=['#d65f5f', '#5fba7d'])

enter image description here

答案 1 :(得分:0)

我认为一切都是正确的。它只是你拥有的价值观。将值更改为以下内容:

import pandas as pd
df = pd.DataFrame([[0,2,19],[0,-3,16],[1,-4,21]], 
columns = ["5D Net Chg","20D Net Chg","60D Net Chg"] )

我得到了这个

df.style.bar(subset=["5D Net Chg","20D Net Chg","60D Net Chg"], align='mid', color=['#d65f5f', '#5fba7d'])

enter image description here