数据框架中分类变量的变化分析

2024-06-01 00:30:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pivot数据框,里面有很多旅行者在世界各地旅行的信息。 我的数据透视图如下所示:

     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天。你知道吗

基于这样的数据,我如何探索哪些路线最受欢迎? 乍一看,他们都是从西班牙来到美国的。罗伯特也从西班牙飞到美国,只不过飞行了两天。三位游客中有两位是从葡萄牙来到西班牙的,所以这也是一条很受欢迎的路线。你知道吗

有没有办法用ML算法来显示流行的路线?我将非常感谢任何提示。你知道吗

编辑: 我们可以假设这个路由有2个节点,因此基于这个df西班牙美国是一个流行的路由


Tags: 数据name信息路由date路线robertpivot
1条回答
网友
1楼 · 发布于 2024-06-01 00:30:14

您可以做的最简单的事情是创建源-目标元组,方法是用移位的self压缩每个用户列,然后将元组传递给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)]

相关问题 更多 >