Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Python在多个列上分组并打印结果?_Python 2.7_Pandas_Matplotlib_Plot_Group By - Fatal编程技术网

Python 2.7 Python在多个列上分组并打印结果?

Python 2.7 Python在多个列上分组并打印结果?,python-2.7,pandas,matplotlib,plot,group-by,Python 2.7,Pandas,Matplotlib,Plot,Group By,以下是我的数据集的外观: Levels Role Status ABC SE Open XYZ SSE Closed KYZ LA Closed 在这里,我的要求是获得每个'Level'和状态为'Closed'的每个'role'的计数 我使用下面的代码来获得所需的结果 df[df['Status'] == 'Closed'].groupby(['Levels','Role']).size() 现在

以下是我的数据集的外观:

Levels     Role     Status
ABC        SE       Open 
XYZ        SSE      Closed 
KYZ        LA       Closed
在这里,我的要求是获得每个'Level'和状态为'Closed'的每个'role'的计数

我使用下面的代码来获得所需的结果

df[df['Status'] == 'Closed'].groupby(['Levels','Role']).size()
现在我想画出这些结果。如何绘制这些结果。这需要是一个不言自明的解释。什么样的情节最适合我的要求

我不熟悉可视化部分


谢谢

如果你不知道如何可视化结果,其他人怎么知道呢。但某种通用的方法是创建一个透视表,其中一个可以使用一个类别作为列,另一个作为索引,然后绘制一个条形图

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

levels=["ABC", "XYZ", "KYZ", "KYZ"]
roles = ["SE", "SSE", "LA", "SSE"]
status = ["Open", "Closed", "Closed", "Closed"]

df=pd.DataFrame({"Levels" : levels, "Role":roles, "Status":status})

df2 = df[df['Status'] == 'Closed'].groupby(['Levels','Role']).size().reset_index(name='Count')
df3 = pd.pivot_table(df2,  values='Count',  columns=['Levels'],  index = "Role",
                         aggfunc=np.sum,  fill_value=0)

df3.plot(kind="bar")
plt.show()

我道歉。我的意思是,哪种方法更能形象化这种结果,这样就更容易解释了。谢谢它看起来对我很好。有一件事,我的level列中有50多个值,因为它是重叠的。有没有办法处理这个问题。什么是重叠?如果是关于图例,减小字体大小和/或增加图形大小可能会有所帮助。若角色具有较少的可能条目,则还可以交换级别和角色。不同类型的情节可能也更适合,但同样,你需要一个最终情节应该是什么样子的粗略想法,否则我们在这里挖黑暗。谢谢。按照我的要求,这种情节似乎不错。我已经添加了这一行“plt.legend(bbox_to_anchor=(0,1.02,1,1.108),loc=3,ncol=8,borderaxespad=0.3)”。图例现在可以阅读了。唯一的问题是条形图的颜色不易区分。不管怎样,再次感谢。虽然人类大脑通常擅长区分颜色之间的相对关系,但在识别绝对颜色方面却相当糟糕。但这是可视化中的一个普遍问题,在这里无法解决。