在Python中基于CSV标准映射出现次数

在Python中基于CSV标准映射出现次数,python,python-3.x,pandas,csv,dataframe,Python,Python 3.x,Pandas,Csv,Dataframe,我的CSV有很多列,我只关注两列,它们是“文本字段(受环境影响)”和“文本字段(评级)” environment列包含诸如dev、test、prod之类的条目。rating列包含诸如P1、P2、P3、P4、P5之类的条目 我需要找出每个环境发生了多少次。在Python中实现这一点的最佳方法是什么 最终目标如下: 测试中的P1/P2:15 测试总数:30 分段中的P1/P2:24 测试总数:30 P1/P2将是这些数据的集合,Total将是其他数据的集合,即P3、P4、P5您已经用熊猫标记了您的问

我的CSV有很多列,我只关注两列,它们是“文本字段(受环境影响)”和“文本字段(评级)”

environment列包含诸如dev、test、prod之类的条目。rating列包含诸如P1、P2、P3、P4、P5之类的条目

我需要找出每个环境发生了多少次。在Python中实现这一点的最佳方法是什么

最终目标如下: 测试中的P1/P2:15 测试总数:30 分段中的P1/P2:24 测试总数:30


P1/P2将是这些数据的集合,Total将是其他数据的集合,即P3、P4、P5

您已经用
熊猫
标记了您的问题,因此我假设您的数据已经是
数据框
的形式。如果是,则应使用以下命令:

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”。然后计算每个子组中的行数

如果您的数据尚未以
数据帧的形式出现,则需要从CSV将其作为一个数据帧加载,这可以通过以下命令完成:

df=pd.read\u csv(文件路径)


根据文件的格式,您可能需要稍微调整参数;可以找到文档。

您已经用
熊猫
标记了您的问题,因此我假设您的数据已经以
数据框
的形式存在。如果是,则应使用以下命令:

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”。然后计算每个子组中的行数

如果您的数据尚未以
数据帧的形式出现,则需要从CSV将其作为一个数据帧加载,这可以通过以下命令完成:

df=pd.read\u csv(文件路径)


根据文件的格式,您可能需要稍微调整参数;可以找到文档。

你好,马库斯,谢谢!它会根据需要显示所有内容,但是如果环境没有分级,它将不会显示任何内容。如果在环境中未检测到任何事件,我如何使其向事件中添加0?它当前显示为:Env1其他P3+11 Env2其他P3+1 Env3其他P3+4我想要:Env1其他P3+11 Env2其他P3+1 Env3其他P3+4 Env1 P1/P2 0 Env2 P1/P2 0 Env3 P1/P20@Govno我想我明白你的意思了,但是你能编辑你的问题并明确说明预期的结果吗?(或者,实际上,也许你应该问一个新的。我不确定。)你好,Marcus,谢谢!它正在按要求显示所有内容,但是如果环境没有分级,它将不会显示任何内容。如果环境没有检测到任何分级,我如何让它在事件中添加0?它当前显示为:Env1其他P3+11 Env2其他P3+1 Env3其他P3+4我想要:Env1其他P3+11环境2其他P3+1环境3其他P3+4环境1 P1/P2 0环境2 P1/P2 0环境3 P1/P20@Govno我想我明白你的意思了,但是你能编辑你的问题并明确说明预期的结果吗?(或者,实际上,也许你应该问一个新的问题。我不确定。)