Kil*_*rus 2 python matplotlib dataframe pandas seaborn
我正在尝试计算分类数据并绘制每个月的高,中,低百分比.
它应该如下图所示:
我有一个日期和分数的数据框,如下所示
-------------------------------
|Date | Score |
|2016-1-02 00:00:00 | High |
|2016-2-02 00:00:00 | Low |
|2016-4-23 00:00:00 | Med |
|2016-5-03 00:00:00 | High |
|2016-6-02 00:00:00 | High |
|2016-6-04 00:00:00 | Low |
|2016-7-02 00:00:00 | Med |
|2016-12-02 00:00:00 | High |
-------------------------------
Run Code Online (Sandbox Code Playgroud)
我知道我可以做到这一点,以获得每个人的分裂,但我不知道如何按月拆分,然后计算这些
df.groupby('Score').size()
Score:
High: 5
Med: 15
Low: 155
Run Code Online (Sandbox Code Playgroud)
谢谢
首先准备数据
In [2056]: dff = (df.set_index('Date').groupby('Score')
.resample('MS').count().unstack('Score'))
In [2057]: dff
Out[2057]:
Score
Score High Low Med
Date
2016-01-01 1.0 NaN NaN
2016-02-01 0.0 1.0 NaN
2016-03-01 0.0 0.0 NaN
2016-04-01 0.0 0.0 1.0
2016-05-01 1.0 0.0 0.0
2016-06-01 1.0 1.0 0.0
2016-07-01 0.0 NaN 1.0
2016-08-01 0.0 NaN NaN
2016-09-01 0.0 NaN NaN
2016-10-01 0.0 NaN NaN
2016-11-01 0.0 NaN NaN
2016-12-01 1.0 NaN NaN
Run Code Online (Sandbox Code Playgroud)
标准化为百分比.
In [2058]: dff.div(dff.sum(1), axis=0).plot.bar(stacked=True)
Out[2058]: <matplotlib.axes._subplots.AxesSubplot at 0x1386ca58>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
688 次 |
| 最近记录: |