分析数据帧中分类变量的变化



我有透视数据框,其中包含许多旅行者在世界各地旅行中前往的领土的信息。 我的枢轴 df 看起来像这样:

Name           Anna         Robert        James
Date               
2018-10-01        Bulgaria       Spain         Croatia
2018-10-02        Portugal       NaN           Portugal  
2018-10-03        Spain          USA           Spain
2018-10-04        USA            USA           Spain
2018-10-05        USA            Canada        USA

有100列(100个旅行者(和300天。

基于这些数据,如何探索哪些路线最受欢迎? 乍一看,他们都是从西班牙来到美国的。罗伯特也从西班牙飞往美国,只是他的航班持续了2天。三位旅行者中有两名从葡萄牙来到西班牙,因此这也是一条受欢迎的路线。

有没有办法使用 ML 算法显示热门路线?我将非常感谢任何提示。

编辑: 我们可以假设该路由有 2 个节点,因此基于此 df 西班牙-美国是一条受欢迎的路线

您可以做的最简单的事情是通过压缩每个用户列及其移位的自我来创建源-目标元组,然后将元组传递给 Counter 对象。

import pandas as pd
from collections import Counter
df.fillna(method='ffill', inplace=True)
# Create a counter object and pass it the origin-destination tuples
counter = Counter()
for col in df.columns:
routes = list(zip(df[col].shift(1, fill_value=df[col][0]), df[col]))
routes = [(k, v) for k, v in routes if k != v]
counter.update(routes)
counter.most_common(3)

输出:

counter.most_common(3)
Out[76]: 
[(('Spain', 'USA'), 3),
(('Portugal', 'Spain'), 2),
(('Bulgaria', 'Portugal'), 1)]

最新更新