带有两个关键DataFrame的堆积条形图

Win*_*981 2 python plot matplotlib pandas

我有一个带有两个键的数据帧.我正在寻找key2中项目数量的堆积条形图(意味着从完全填充的数据列中获取计数值).

我拥有的数据帧的一小部分是:

Sector            industry                   
Basic Industries  Agricultural Chemicals         17
                  Aluminum                        3
                  Containers/Packaging            1
                  Electric Utilities: Central     2
                  Engineering & Construction     12
Name: Symbol, dtype: int64
Run Code Online (Sandbox Code Playgroud)

Key1是Sector,Key2是Industry.我希望Symbol中的值(计数列表示为行业堆栈)在包含Basic Industries的栏中.

我知道如果我做了一个df.reset_index我将拥有一个带有(非唯一)扇区和行业的列,带有整数计数器.有没有办法简单地将列1,2,3数据分配给pandas plot或matplotlib来制作堆积条形图?

或者,有没有办法在上述数据框中轻松指定使用两个键?

我正在寻找更有经验的人的方法指导以及实际语法的帮助.

小智 5

我刚刚添加了一个新的扇区来改进这个例子.

                                           Symbol
Sector            industry                           
Basic Industries  Agricultural Chemicals           17
                  Aluminum                          3
                  Containers/Packaging              1
                  Electric Utilities: Central       2
                  Engineering & Construction       22
Basic Industries2 Agricultural Chemicals            7
                  Aluminum                          8
                  Containers/Packaging             11
                  Electric Utilities: Central       7
                  Engineering & Construction        4
Run Code Online (Sandbox Code Playgroud)

假设您的数据帧已被索引,["Sector", "industry"]您首先需要reset_index,然后转动数据帧,最后制作堆积图.

df.reset_index().pivot_table(index="industry", columns="Sector", values="Symbol").T.plot(kind='bar', stacked=True, figsize=(14, 6))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述