Pandas/iPython 中的堆积条形图
Stacked Bar Graph in Pandas/iPython
正在尝试在 Pandas/iPython
中创建堆积条形图
原始数据如下:
Date1 ProductID1 Count
0 2015-06-21 102 5449
1 2015-06-21 107 5111
2 2015-06-22 102 9083
3 2015-06-22 107 7978
4 2015-06-23 102 21036
5 2015-06-23 107 20756
使用以下设置索引:
Table1.set_index(['Date1'],inplace=True)
display(Table1)
使用以下方法分解数据以准备绘图
Table1_Unstacked = Table1.unstack()
display(Table1_Unstacked)
(注意:此命令中没有显示任何内容,所以我假设这是它失败的地方,但我不知道为什么)。
正在尝试以这种格式获取 table:
Count
Date1 ProductID1
102 107
2015-06-21 5449 5111
2015-06-22 9083 7978
2015-06-23 21036 20756
然后使用以下方法显示结果,但显示效果不理想。
Table1_Unstacked.plot(kind='bar', stacked=True)
结果如下。我试图让它显示 3 "bars"(每天一个,计数 102 和 107 "stacked" 相互叠加,但现在它不显示任何堆叠的东西,而是显示 ProductID1 和然后单独计算。附上一张图表图片,但它可能不会让我 post 它。我觉得我犯了一个愚蠢的错误,但任何帮助将不胜感激。
您可以使用 pd.pivot_table()
.
import pandas as pd
pivot = pd.pivot_table(Table1.reset_index(), index='Date1', columns='ProductID1', values='Count')
pivot
Out[44]:
ProductID1 102 107
Date1
2015-06-21 5449 5111
2015-06-22 9083 7978
2015-06-23 21036 20756
pivot.plot(kind='bar', stacked=True)
正在尝试在 Pandas/iPython
中创建堆积条形图原始数据如下:
Date1 ProductID1 Count
0 2015-06-21 102 5449
1 2015-06-21 107 5111
2 2015-06-22 102 9083
3 2015-06-22 107 7978
4 2015-06-23 102 21036
5 2015-06-23 107 20756
使用以下设置索引:
Table1.set_index(['Date1'],inplace=True)
display(Table1)
使用以下方法分解数据以准备绘图
Table1_Unstacked = Table1.unstack()
display(Table1_Unstacked)
(注意:此命令中没有显示任何内容,所以我假设这是它失败的地方,但我不知道为什么)。
正在尝试以这种格式获取 table:
Count
Date1 ProductID1
102 107
2015-06-21 5449 5111
2015-06-22 9083 7978
2015-06-23 21036 20756
然后使用以下方法显示结果,但显示效果不理想。
Table1_Unstacked.plot(kind='bar', stacked=True)
结果如下。我试图让它显示 3 "bars"(每天一个,计数 102 和 107 "stacked" 相互叠加,但现在它不显示任何堆叠的东西,而是显示 ProductID1 和然后单独计算。附上一张图表图片,但它可能不会让我 post 它。我觉得我犯了一个愚蠢的错误,但任何帮助将不胜感激。
您可以使用 pd.pivot_table()
.
import pandas as pd
pivot = pd.pivot_table(Table1.reset_index(), index='Date1', columns='ProductID1', values='Count')
pivot
Out[44]:
ProductID1 102 107
Date1
2015-06-21 5449 5111
2015-06-22 9083 7978
2015-06-23 21036 20756
pivot.plot(kind='bar', stacked=True)