[英]Iteratively plot values from a pandas dataframe
我有一個pandas
數據框,是groupby()
操作c
:
>>> c.index.names
FrozenList([u'Thing1', u'Thing2', u'Month'])
>>> c.columns
Index([u'Tot'], dtype='object')
>>> c
Tot
Thing1 Thing2 Month
G P 2012-12-01 0.017640
2013-01-01 0.012062
2013-02-01 0.029022
2013-03-01 0.007593
2013-04-01 0.004862
2013-05-01 0.002671
2013-06-01 0.014895
2013-07-01 0.029641
2013-08-01 0.051129
2013-09-01 0.023913
2013-10-01 0.061406
2013-11-01 0.054781
2014-01-01 0.017115
2014-02-01 0.011919
H K 2013-06-01 2.390632
2013-07-01 7.066034
2013-08-01 5.426312
2013-09-01 8.276066
2013-10-01 5.745811
2013-11-01 2.250162
2013-12-01 0.976822
2014-01-01 1.438316
2014-02-01 3.507220
M 2012-06-01 3.050136
2012-07-01 5.911788
2012-08-01 2.794381
2012-09-01 4.418268
2012-10-01 5.312635
2012-11-01 1.810977
2012-12-01 3.097878
2013-01-01 0.811326
2013-02-01 3.105154
2013-03-01 2.384704
我可以繪制一對Thing1
和Thing2
的圖形,例如G
和P
如下所示:
c.loc[('G', 'P'), :].plot(kind='bar')
但是,我想遍歷DataFrame並為Thing1
和Thing2
所有組合繪制單獨的圖。 我嘗試使用index.get_level_values
但是這會導致不存在例如G
和M
組合,因此會產生錯誤:
for x in c.index.get_level_values(0).unique():
for y in c.index.get_level_values(1).unique():
c.loc[(x, y), :].plot(kind='bar')
有誰知道如何做到最好?
做這個
c.groupby(level=['Thing1', 'Thing2']).plot(kind='bar')
這將為您提供len(df.index.levels[0]) * len(df.index.levels[1])
繪圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.