Итак, у меня есть большой фрейм данных, использующий панд.
Когда я делаю max(df['A'])
, он сообщает о максимуме 9999
, когда он должен быть 396450
по наблюдениям.
import numpy as numpy
import pandas as pd
f = open("20170901.as-rel2.txt", 'r')
#read file into array, ignore first 6 lines
lines = loadtxt("20170901.as-rel2.txt", dtype='str', comments="#", delimiter="|", unpack=False)
#ignore col 4
lines=lines[:, :3]
#convert to dataframe
df = pd.DataFrame(lines, columns=['A', 'B', 'C'])
После нахождения максимума я должен подсчитать каждый node(col 'A')
и сказать, сколько раз он повторяется.
Вот пример файла:
df=
A B C
0 2 45714 0
1 2 52685 -1
2 3 293 0
3 3 23248 -1
4 3 133296 0
5 3 265301 -1
6 5 28599 -1
7 5 52352 0
8 5 262879 -1
9 5 265048 -1
10 5 265316 -1
11 10 46392 0
.....
384338 396238 62605 -1
384339 396371 3785 -1
384340 396434 35039 -1
384341 396450 2495 -1
384342 396450 5078 -1
Expect:
[1, 0
2, 2
3, 4
4, 0
5, 5
10, 1
....]
Я собирался запустить цикл for
, равный i <= maxvalue
(максимальное значение превышает количество строк).
и использовать счетчик. Какой метод наиболее эффективен?