У меня есть фрейм данных, который содержит 2 столбца ('timestamp', 'ip') и 400 строк
timestamp ip
1000 ip1
1500 ip2
. .
. .
11000 ip1
. .
. .
50000 ip5
, что я хочу сделать, это проверить, если разница между каждой 10-й строкой и 1 строкойкаждые 10 строк в столбце 1 равны <= 10, если да, получите значение, которое больше всего повторяется в столбце 2, и удалите его из фрейма данных только в тех строках, где тест равен true </p>
Так что я хочуget - создать цикл с шагом 10, пройти первый столбец и выполнить тест между 10-й и 1-й строкой, если результат равен true. Я делаю еще один цикл, чтобы получить 10 строк в списке, а затем получить ip, которыйповторяет большинство в этом списке и пытается удалить из исходного кадра данных, но я не уверен, что это правильный подход, как мой код выглядит так:
#created an empty list
list=[]
#create a dataframe from the csv file
read=pd.read_csv(r"example.csv", delimiter = ';')
#get the number of rws in the csv file
lines = sum(1 for line in open('example.csv'))
#my first loop to make the test on the 10000 with the step 10
for i in range(0, lines-1, 10):
if int((read['timestamp'][i+1]))-(int (read['timestamp'][i]) )<= 10000:
# second loop the extract the result in a list
for j in range (i,i+10) :
l.append(read['ip'][j])
df = pd.DataFrame({'ip':l})
print(df)
l=[]
, так что результат, который я получаю из этогокод такой:
IP
0 ip1
1 ip2
2 ip3
3 ip4
4 ip5
5 ip5
6 ip5
7 ip1
8 ip5
9 ip6
All what i want to do now is to get which ip is the most frequent and how frequent is this ip that means
Ip5 :4