Ниже приведен упрощенный фрагмент моего блока данных. Я хочу, чтобы обрабатыватьСоответствующие кортежи в пандах и обработка данных
,No.,Time,Source,Destination,Protocol,Length,Info,src_dst_pair
325778,112.305107,02:e0,Broadcast,ARP,64,Who has 253.244.230.77? Tell 253.244.230.67,"('02:e0', 'Broadcast')"
801130,261.868118,02:e0,Broadcast,ARP,64,Who has 253.244.230.156? Tell 253.244.230.67,"('02:e0', 'Broadcast')"
700094,222.055094,02:e0,Broadcast,ARP,60,Who has 253.244.230.77? Tell 253.244.230.156,"('02:e0', 'Broadcast')"
766542,766543,247.796156,100.118.138.150,41.177.26.176,TCP,66,32222 > http [SYN] Seq=0,"('100.118.138.150', '41.177.26.176')"
767405,248.073313,100.118.138.150,41.177.26.176,TCP,64,32222 > http [ACK] Seq=1,"('100.118.138.150', '41.177.26.176')"
767466,248.083268,100.118.138.150,41.177.26.176,HTTP,380,Continuation [Packet capture],"('100.118.138.150', '41.177.26.176')"
У меня есть все уникальные элементы (последний элемент) src_dst_pair
uniq_src_dst_pair = numpy.unique(data.src_dst_pair.ravel())
[('02:e0', 'Broadcast') ('100.118.138.150', '41.177.26.176')]
Как я могу сделать следующее панд
для каждого элемент в uniq_src_dst_pair, установите флажок df.src_dst_pair. Если они совпадают, добавьте df.Length и сохранить его в отдельной колонке
мой ожидаемый результат
('02:e0', 'Broadcast') : 188
('100.118.138.150', '41.177.26.176') : 510
Как я могу это сделать?
Ниже моя попытка
import pandas
import numpy
data = pandas.read_csv('first.csv')
print data
uniq_src_dst_pair = numpy.unique(data.src_dst_pair.ravel())
print uniq_src_dst_pair
print len(uniq_src_dst_pair)
# following is hardcoded, but need to be more general for the above list
match1 = data[data.src_dst_pair == "('02:e0:ed:0a:fb:5f', 'Broadcast')"] # doesn't work
Просто чтобы быть понятным, вы пытаетесь получить общее количество байтов, передаваемых через каждое соединение (где соединение идентифицировано источником и получателем), правильно? –
Вы правы. – user2532296