gpt4 book ai didi

python - 将 pandas 矩阵转换为 DataFrame

转载 作者:太空宇宙 更新时间:2023-11-04 10:05:57 27 4
gpt4 key购买 nike

我创建了一个矩阵:

items = [0, 1, 2, 3]
item_to_item = pd.DataFrame(index=items, columns=items)

我已经将值放入其中:

  1. 它是对称的
  2. 它的对角线全为0

例如:

   0  1  2  3
0 0 4 5 9
1 4 0 3 7
2 5 3 0 3
3 9 7 3 0

我想创建一个包含所有可能对(来自 [0, 1, 2, 3])的数据框,这样就不会有 (x, x) 对,如果 (x, y) 在里面,我不想要 (y, x) 因为它是对称的并且具有相同的值。最后我将得到以下数据框(或 numpy 二维数组)

item, item, value
0 1 4
0 2 5
0 3 9
1 2 3
1 3 7
2 3 3

最佳答案

这是一个带有 np.triu_indices 的 NumPy 解决方案-

In [453]: item_to_item
Out[453]:
0 1 2 3
0 0 4 5 9
1 4 0 3 7
2 5 3 0 3
3 9 7 3 0

In [454]: r,c = np.triu_indices(len(items),1)

In [455]: pd.DataFrame(np.column_stack((r,c, item_to_item.values[r,c])))
Out[455]:
0 1 2
0 0 1 4
1 0 2 5
2 0 3 9
3 1 2 3
4 1 3 7
5 2 3 3

关于python - 将 pandas 矩阵转换为 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41002720/

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