我有一个包含许多列的CSV,我只关心两列,它们是“文本字段(受影响的环境)”和“文本字段(评分)”。
“环境”列具有诸如dev,test,prod之类的条目。评级列中包含P1,P2,P3,P4,P5等条目。
我需要以某种方式绘制出每个环境发生了多少次事件。用Python做到这一点的最佳方法是什么?
最终目标将是这样的: 测试中的P1 / P2:15 测试总数:30 P1 / P2分期:24 测试总数:30
P1 / P2将是这些值的总和,Total将是其他值(即P3,P4,P5)的总和
答案 0 :(得分:0)
您已用pandas
标记了您的问题,所以我认为您的数据已经以DataFrame
的形式出现。如果是这样,则应执行以下命令:
df.groupby(['env', (df['rating'].isin(['P1', 'P2']))]).size().rename(index={True: 'P1/P2', False: 'Total'}, level=1)
(这假设您的DataFrame
被命名为df
,并且您的“受影响的环境”和“评级”列分别被命名为env
和rating
。)
这将对env
列的第一个唯一值,然后对rating
列的第一个唯一值进行分组,具体取决于其中包含的值是'P1'还是'P2' 。然后,它计算每个子组中的行数。
如果您的数据还不是DataFrame
形式,则需要从CSV中将其作为一个数据加载,这可以通过以下命令完成:
df = pd.read_csv(file_path)
您可能需要稍微调整参数,具体取决于文件的格式;可以在here中找到该文档。