Корреляция моделей движения идентификаторов во времени - PullRequest
0 голосов
/ 04 октября 2019

У меня есть некоторые x-, y- координаты для каждого идентификатора, и я использовал функции groupby ('ID'). Diff (), чтобы вычесть различия между координатами x и y, чтобы определить шаблоны направлений / индивидуальный идентификатор. Если направления (хх и уу) около 0, то идентификатор не двигался. Теперь, как я могу найти корреляции между различными идентификаторами и их направлениями? В идеале я хотел бы соединить идентификаторы, которые движутся навстречу друг другу, и идентификаторы, которые сидят «тихо». Любая помощь очень ценится !!!

ID      Time                    X   Y   xx  yy
42403   2019-07-24 08:00:00.255 225 235 1.0 1.0
42386   2019-07-24 08:00:00.255 257 232 -1.0 0.0
42403   2019-07-24 08:00:00.495 226 235 1.0 0.0
42386   2019-07-24 08:00:00.495 257 232 0.0 0.0
42403   2019-07-24 08:00:00.733 226 235 0.0 0.0
42386   2019-07-24 08:00:00.733 257 232 0.0 0.0
42403   2019-07-24 08:00:00.008 224 234 -2.0 -1.0
42386   2019-07-24 08:00:00.008 258 232 1.0 0.0
42403   2019-07-24 08:00:00.255 225 235 1.0 1.0
42386   2019-07-24 08:00:00.255 257 232 -1.0 0.0
42403   2019-07-24 08:00:00.495 226 235 1.0 0.0
42386   2019-07-24 08:00:00.495 257 232 0.0 0.0
42403   2019-07-24 08:00:00.733 226 235 0.0 0.0
42386   2019-07-24 08:00:00.733 257 232 0.0 0.0
42403   2019-07-24 08:00:01.009 224 235 -2.0 0.0
42386   2019-07-24 08:00:01.009 258 232 1.0 0.0
42403   2019-07-24 08:00:01.371 225 235 1.0 0.0
42386   2019-07-24 08:00:01.371 259 232 1.0 0.0
42403   2019-07-24 08:00:01.611 226 235 1.0 0.0
42386   2019-07-24 08:00:01.611 258 232 -1.0 0.0
42403   2019-07-24 08:00:01.736 226 235 0.0 0.0
42386   2019-07-24 08:00:01.736 258 232 0.0 0.0
42403   2019-07-24 08:00:02.066 226 235 0.0 0.0
42386   2019-07-24 08:00:02.066 259 232 1.0 0.0
42403   2019-07-24 08:00:02.281 226 234 0.0 -1.0
42386   2019-07-24 08:00:02.281 259 232 0.0 0.0
42403   2019-07-24 08:00:02.568 226 234 0.0 0.0
42386   2019-07-24 08:00:02.568 259 232 0.0 0.0
42403   2019-07-24 08:00:02.769 225 234 -1.0 0.0
42386   2019-07-24 08:00:02.769 259 232 0.0 0.0
42403   2019-07-24 08:00:03.010 225 234 0.0 0.0
42386   2019-07-24 08:00:03.010 259 232 0.0 0.0
42403   2019-07-24 08:00:03.242 225 233 0.0 -1.0
42386   2019-07-24 08:00:03.242 259 232 0.0 0.0
42403   2019-07-24 08:00:03.574 225 235 0.0 2.0
42386   2019-07-24 08:00:03.574 259 232 0.0 0.0
42403   2019-07-24 08:00:03.760 224 235 -1.0 0.0
42386   2019-07-24 08:00:03.760 259 231 0.0 -1.0
42403   2019-07-24 08:00:03.971 224 234 0.0 -1.0
42386   2019-07-24 08:00:03.971 259 232 0.0 1.0
42403   2019-07-24 08:00:04.231 224 234 0.0 0.0
42386   2019-07-24 08:00:04.231 259 232 0.0 0.0
42403   2019-07-24 08:00:04.567 224 234 0.0 0.0
42386   2019-07-24 08:00:04.567 259 232 0.0 0.0
42403   2019-07-24 08:00:04.849 223 234 -1.0 0.0
42386   2019-07-24 08:00:04.849 259 232 0.0 0.0
42403   2019-07-24 08:00:05.054 223 234 0.0 0.0
42386   2019-07-24 08:00:05.054 259 232 0.0 0.0
42403   2019-07-24 08:00:05.288 224 235 1.0 1.0
42386   2019-07-24 08:00:05.288 259 232 0.0 0.0
42403   2019-07-24 08:00:05.597 225 234 1.0 -1.0
42386   2019-07-24 08:00:05.597 259 232 0.0 0.0
42403   2019-07-24 08:00:05.783 222 232 -3.0 -2.0
42386   2019-07-24 08:00:05.783 259 232 0.0 0.0
42403   2019-07-24 08:00:06.014 222 233 0.0 1.0

1 Ответ

0 голосов
/ 04 октября 2019

Сначала я получу значения, по которым вы хотите вычислить ваши корреляции в столбцах, а затем воспользуйтесь уже реализованным методом панд .corr () . Так что для него метод unstack является простым подходом.

Вот мой код:

# considering that the position measures are already sorted we will create indexes for every step and call them 'measure'
df['measure'] = [_ // 2 for _ in range(len(df))] # 2 IDs in total
# no more need of time data
df.drop(labels='Time', axis=1, inplace=True)

# this line of work does all the work. I am using the .corr() method from pandas
df.set_index(['ID', 'measure']).unstack('ID').corr()

Вывод должен быть матрицей корреляций, я использовал причудливый метод для создания этой тепловой карты, используяseaborn:

enter image description here

Если вас интересует и визуализация, взгляните на метод тепловых карт из seaborn.

...