Comment utiliser deux keys dans groupby
Utilisateur anonyme
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Je voudrais incrémenter un compteur des critères. Pour cela, j'ai utilisé la fonction sorted et groupby
Maintenant je veux que mon compteur s'incrémente selon deux critères: quand on trouve et le numéro de tcp.seq et le numéro ack en double. Quand j'ai tcp.seq et tcp.ack en double le compteur s'incrémente. Je ne sais pas comment ajouter un second critère dans groupby. Une idée ?
from itertools import groupby
def tcp_seq(p):
return p['TCP'].seq
def tcp_ack(p):
return p['TCP'].ack
def groups_by_seq(s):
x = sorted((p for p in s if p.haslayer('TCP')), key=tcp_seq)
y = [(k, list(g)) for k, g in groupby(x, key=tcp_seq)]
return [(seq, group) for seq, group in y if len(group) > 1]
def duplication_pkt_count(s, s_ip, c_ip):
sCount = 0
cCount = 0
for seq, group in groups_by_seq(s):
for p in group:
if p.haslayer(IP):
if (p[IP].src == s_ip):
sCount += 1
if (p[IP].src == c_ip):
cCount += 1
return (sCount, cCount)
Maintenant je veux que mon compteur s'incrémente selon deux critères: quand on trouve et le numéro de tcp.seq et le numéro ack en double. Quand j'ai tcp.seq et tcp.ack en double le compteur s'incrémente. Je ne sais pas comment ajouter un second critère dans groupby. Une idée ?
A voir également:
- Comment utiliser deux keys dans groupby
- Comment utiliser chromecast sur tv - Guide
- Comment faire deux colonnes indépendantes dans word - Guide
- Deux ecran pc - Guide
- Nombre de jours entre deux dates excel - Guide
- Utiliser iphone comme webcam - Guide
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
ne suffit-il pas d'utiliser une clé qui regroupe seq et ack?
ne suffit-il pas d'utiliser une clé qui regroupe seq et ack?
comment peut-on regrouper plusieurs éléments en python?