我有一些包含票证的数据。我只想在“评论”列中找到多少票已分配给 Fields Techs 。所有的票都有多次进入(评论)。
field_tech=logs_data[logs_data['Comment'].str.contains('Assigned:Fields Techs')]
# calculate the length of the subset
len(field_tech)
我实际上是在考虑按评论对它们进行分组,获取每个票证的数据框,将它们存储在列表中,然后循环遍历该列表以获取我的信息。我知道它是大量的计算,但是我真的不知道如何确认所做的事情,也不知道如何将groupby的所有结果拆分到一个列表中。
我认为正确的SQL脚本应该是这样的:
select tickets,Comment
from logs
where Comment like 'Assigned:Fields Techs'
group by tickets
答案 0 :(得分:0)
您当前的代码看起来不错,但是,如果您寻找一些小技巧来使它真正变得棘手,则也可以考虑如下:
field_tech=logs_data[logs_data['Comment'].str.contains('Assigned:*Techs$')]
在上面的代码行中,如果我们知道票证类型始终为Assigned:Fields Techs
,则可以这样进行修整,说票证名称以Assigned
开头并始终以Techs
结尾我们不会把所有东西都放完。
field_tech=logs_data[logs_data['Comment'].str.startswith('Assigned:Fields Techs')]
在上面的第二行代码中,我们使用的字符串开头为,也将起作用。
答案 1 :(得分:0)
我自己不知道答案。我终于明白了。 答案是这样:
logs_data[logs_data['Comment'].str.contains('Assigned:FieldsTechs')].groupby('Ticket')
# Then I just get the length of the above for number of tickets assigned to tecks.
len(logs_data[logs_data['Comment'].str.contains('Assigned:Fields Techs')].groupby('Ticket'))