gpt4 book ai didi

python - Pandas 多索引绘图

转载 作者:IT老高 更新时间:2023-10-28 20:27:22 27 4
gpt4 key购买 nike

DataFrame 上执行 groupby.sum() 后,我在尝试创建我想要的情节时遇到了一些麻烦。

grouped dataframe with multi-index

import pandas as pd
import numpy as np

np.random.seed(365)
rows = 100
data = {'Month': np.random.choice(['2014-01', '2014-02', '2014-03', '2014-04'], size=rows),
'Code': np.random.choice(['A', 'B', 'C'], size=rows),
'ColA': np.random.randint(5, 125, size=rows),
'ColB': np.random.randint(0, 51, size=rows),}
df = pd.DataFrame(data)

Month Code ColA ColB
0 2014-03 C 59 47
1 2014-01 A 24 9
2 2014-02 C 77 50

dfg = df.groupby(['Code', 'Month']).sum()

ColA ColB
Code Month
A 2014-01 124 102
2014-02 398 282
2014-03 474 198
2014-04 830 237
B 2014-01 477 300
2014-02 591 167
2014-03 522 192
2014-04 367 169
C 2014-01 412 180
2014-02 275 205
2014-03 795 291
2014-04 901 309

如何为每个 Code 创建一个子图 (kind='bar'),其中 x 轴是 Month 和条形是 ColAColB?

最佳答案

我发现 unstack(level) 方法可以完美地工作,它的另一个好处是不需要先验知道有多少代码。

ax = dfg.unstack(level=0).plot(kind='bar', subplots=True, rot=0, figsize=(9, 7), layout=(2, 3))
plt.tight_layout()

enter image description here

关于python - Pandas 多索引绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25386870/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com