У меня есть файлы с разделителями, которые фиксируют моментальный снимок некоторых процессов каждые 5 минут. Я бы хотел сделать статистический анализ по ним, группировать и наметить подмножества данных и т. Д., Часть которых включала бы подсчет времени, когда процесс был открыт (т. Е. Общие минуты = как моментальные снимки, появляющиеся в x 5). Я могу использовать Python, R или любой язык, который я выбираю.Рекомендовать структуру данных для снимков с моментальным снимком
Задача состоит в том, что ни полей являются уникальными (есть один-ко-многим и многие-ко-многим), так что единственный матч, когда каждый элемент по всей линии является одна и та же.
Может быть, пример поможет. Скажем, первый журнал снимок выглядит следующим образом:
R123,M,5,... <-- line A
R190,Z,4,...
R663,M,8,...
Затем через 5 минут, следующий снимок показывает это:
R123,M,5,... <-- line A
R123,P,3,... <-- line B
R955,Z,3,...
Очевидно, что процесс в линии А теперь уже в течение не менее 5 минут Теперь. Но даже если строка B имеет одно и то же первое поле, другие поля не совпадают, так что это не тот же процесс.
Я просто пытаюсь найти хорошую модель данных, которая упрощает работу этих данных.
Одним из вариантов было бы простое подсчет частоты: прочитайте каждую строку в Python dict или Perl хэш с линией в качестве ключа, так что, когда дублирующая строка появится в следующем снимке, она просто добавит к счету. Например, в Perl: $count{$_}++ foreach @lines;
Но будет ли полная строка данных действительной в качестве словарного ключа? А как насчет непересекающихся экземпляров, например, если строка A появляется для трех снимков в строке, а затем еще один день позже появляется снова? - это должны быть отдельные экземпляры, чтобы запросы по времени все еще были действительны.
Любые предложения для меня о том, как я могу обработать & хранить эти данные?
Почему бы не вытащить дублированные линии? Существует функция 'duplicated', которая имеет метод dataframe. –
@DWin: 'потому что мне нужно количественно продублировать его дублированные строки, так как ключевые данные о том, как долго этот процесс длится, можно найти, только видя, сколько раз или от времени его первого появления до последнего. – ewall