根据Python中CSV的标准映射发生次数

时间:2019-02-09 23:06:08

标签: python python-3.x pandas csv dataframe

我有一个包含许多列的CSV,我只关心两列,它们是“文本字段(受影响的环境)”和“文本字段(评分)”。

“环境”列具有诸如dev,test,prod之类的条目。评级列中包含P1,P2,P3,P4,P5等条目。

我需要以某种方式绘制出每个环境发生了多少次事件。用Python做到这一点的最佳方法是什么?

最终目标将是这样的: 测试中的P1 / P2:15 测试总数:30 P1 / P2分期:24 测试总数:30

P1 / P2将是这些值的总和,Total将是其他值(即P3,P4,P5)的总和

1 个答案:

答案 0 :(得分:0)

您已用pandas标记了您的问题,所以我认为您的数据已经以DataFrame的形式出现。如果是这样,则应执行以下命令:

df.groupby(['env', (df['rating'].isin(['P1', 'P2']))]).size().rename(index={True: 'P1/P2', False: 'Total'}, level=1)

(这假设您的DataFrame被命名为df,并且您的“受影响的环境”和“评级”列分别被命名为envrating。)

这将对env列的第一个唯一值,然后对rating列的第一个唯一值进行分组,具体取决于其中包含的值是'P1'还是'P2' 。然后,它计算每个子组中的行数。

如果您的数据还不是DataFrame形式,则需要从CSV中将其作为一个数据加载,这可以通过以下命令完成:

df = pd.read_csv(file_path)

您可能需要稍微调整参数,具体取决于文件的格式;可以在here中找到该文档。