You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中基于起点行与终点行构建From-To矩阵的方法

最优实现方法:用Python Pandas快速构建矩阵

嘿,这个问题我太熟了!要把你给出的这份出行流量数据转换成以出发地(From)为行、目的地(To)为列的矩阵,最优的实现方法绝对是用Python的pandas库来处理——不仅效率高,还能自动处理可能的缺失值,哪怕以后数据量变大也能轻松hold住。

步骤拆解:

  • 第一步:准备数据
    先把你提供的原始数据转换成pandas可识别的格式,这里直接用列表嵌套的形式就可以:

    import pandas as pd
    
    # 你的原始出行数据
    traffic_data = [
        ["Paris", "London", 10],
        ["Paris", "HongKong", 8],
        ["London", "HongKong", 3],
        ["London", "Paris", 2],
        ["NewYork", "Paris", 5],
        ["NewYork", "HongKong", 4],
        ["NewYork", "London", 6],
        ["HongKong", "Paris", 12],
        ["HongKong", "London", 10],
        ["HongKong", "NewYork", 11]
    ]
    
  • 第二步:转换成DataFrame并构建矩阵
    用pandas的pivot方法直接生成行/列对应的矩阵,同时用fillna(0)把没有数据的单元格填充为0(如果不需要填充可以去掉这部分):

    # 转成DataFrame结构
    df = pd.DataFrame(traffic_data, columns=["From", "To", "Count"])
    
    # 构建目标矩阵:行=From,列=To,值=Count,缺失值补0
    traffic_matrix = df.pivot(index="From", columns="To", values="Count").fillna(0).astype(int)
    
    # 打印结果
    print(traffic_matrix)
    
  • 最终输出的矩阵(Markdown格式)
    运行代码后会得到如下结构化的矩阵:

    FromHongKongLondonParisNewYork
    Paris81000
    London3020
    NewYork4650
    HongKong0101211

补充:如果不想用代码(仅适合小数据量)

如果你的数据量很小,也可以手动构建Markdown表格:

  1. 先提取所有唯一的From和To值作为行头和列头;
  2. 逐个匹配每一行的(From, To)组合,把对应Count值填入单元格,没有数据的填0;
  3. 用Markdown表格语法整理成格式。

不过这种方法仅适合数据量极少的情况,一旦数据增多,手动操作很容易出错,所以还是推荐用pandas的方法。

内容的提问来源于stack exchange,提问作者Moni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:10:19