gpt4 book ai didi

python - 在 Python 中从数据帧创建起点-目的地矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 19:46:47 24 4
gpt4 key购买 nike

我想从 python 中的以下数据帧创建一个起点-目的地矩阵:

Origin  Destination
1 2
1 3
1 4
2 3
3 4

我期望以下矩阵:

   1  2  3  4
1 0 1 1 1
2 0 0 1 0
3 0 0 0 1
4 0 0 0 0

我知道可以在 R 中使用 table() 函数来完成,但我不知道如何在 python 中完成。非常感谢您的帮助。

最佳答案

您可以使用 pivot_tablelen 的聚合函数来构建矩阵:

df.pivot_table(values='Destination', index="Origin", columns='Destination',
fill_value=0, aggfunc=len)

给出:

Destination  2  3  4
Origin
1 1 1 1
2 0 1 0
3 0 0 1

但是你只能找到原始矩阵中存在的起点和终点。

如果您希望每个可能的端点都有一行和一列,则必须首先构建一个空矩阵,然后添加上面的矩阵:

resul = pd.DataFrame(0, index=list(range(1,5)), columns = list(range(1,5))
).add(df.pivot_table(values='Destination', index="Origin",
columns='Destination', aggfunc=len),
fill_value=0).astype('int')

给出了预期的矩阵:

   1  2  3  4
1 0 1 1 1
2 0 0 1 0
3 0 0 0 1
4 0 0 0 0

关于python - 在 Python 中从数据帧创建起点-目的地矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60079115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com