Есть ли Python способ построить кластер данных панели? - PullRequest
0 голосов
/ 12 февраля 2020

В настоящее время меня просят найти сходство между различными временными рядами (наверняка можно было бы много обсудить с данными панели / спецификациями временных рядов). Чтобы объяснить более понятно, у меня есть ежемесячные данные, описывающие продажи для разных стран и товаров. Таким образом, мое требование состоит в том, чтобы найти способ сравнить каждый временной ряд (сезонность, тренд ...), чтобы сгруппировать некоторые из них в похожий кластер (поведение).

Есть ли у вас какие-то хитрости или, может быть, предварительно собранные пакеты, способные создать такую ​​группировку?

Ниже приведен воспроизводимый пример, показывающий, как выглядят мои данные.

«Визуальная кластеризация» невозможна из-за количества данных (~ 100 категорий / данных с 2000-01 по 2019-12).

pd.DataFrame({'Country':['France', 'Germany','Spain', 'Israel', 'Liban','France', 'Germany','Spain', 'Israel', 'Liban','France', 'Germany','Spain', 'Israel', 'Liban','France', 'Germany','Spain', 'Israel', 'Liban'], 
              'Good':['A','A','A','A','A','B','B','B','B','B','A','A','A','A','A','B','B','B','B','B'],
             'Position':['Top', 'Top','Top', 'Top','Top', 'Top','Top', 'Top','Top', 'Top', 'Dow', 'Down','Dow', 'Down','Dow', 'Down','Dow', 'Down','Dow', 'Down',],
             '2010-01':['2','3','4','5','6','7','8','9','10','1','11','12','13','14','26','56','13','14','15','17'],
              '2010-02':['21','13','44','55','76','17','88','19','19','11','12','12','18','17','14','44','33','4','17','19'],
              '2010-03':['10','31','24','52','71','18','68','20','22','12','10','19','58','67','44','54','23','8','47','99'],
              '2010-04':['22','32','39','55','77','12','88','19','16','15','12','22','18','15','16','14','13','41','17','89'],
              '2010-05':['23','36','29','55','76','14','12','25','16','6','12','23','29','12','14','41','23','42','27','79'],
              '2010-06':['24','34','40','55','76','16','81','27','16','7','17','19','58','44','34','16','23','14','13','29'],
              '2010-07':['25','31','41','55','74','15','88','28','8','7','16','11','58','66','13','45','63','14','11','69'],
              '2010-08':['26','30','43','55','74','15','87','26','8','8','15','23','28','55','22','26','93','43','22','19'],
              '2010-09':['27','33','47','55','79','13','86','29','8','9','1','24','48','85','22','24','33','34','16','16'],
              '2010-10':['27','31','44','55','71','12','85','29','10','10','14','29','58','31','12','14','63','42','1','17'],
              '2010-11':['26','35','46','55','71','15','90','16','10','10','13','27','38','64','21','43','13','24','16','11'],
              '2010-12':['25','39','45','55','70','12','99','16','12','10','12','22','48','68','16','42','53','41','50','1'],
              '2011-01':['22','37','44','55','66','10','107','16','13','12','12','26','58','55','15','41','63','14','14','12']})

Заранее спасибо,

...