在熊猫邻接矩阵中查找特定字段的元素

时间:2020-10-27 10:30:12

标签: python pandas dataframe

我有一个熊猫邻接数据框,在这里我需要能够通过其物理编号位置,索引或列位置或其坐标来标识该数据框上的任何元素。

数据帧是10,000 x 10,000邻接矩阵:

adj.shape

(10103, 10103)

代替做类似的事情

adj.iloc[coord1], [coord2]]

(工作正常),我需要能够通过其物理编号在0到100,000,000之间找到数据帧上的值(0是第一个字段,而100,000,000是最后一个字段。

我尝试过(我相信是)一个笨拙的方法,该方法是堆叠数据帧,转换为列表,然后在我感兴趣的索引处找到合适的值:

adj().stack().tolist()[0]

(或任何其他告诉我该位置的值的数字。这也可以很好地工作,但是我希望能够保持邻接矩阵完整。任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:1)

使用整数除法和取模:

np.random.seed(1)

adj = pd.DataFrame(np.random.rand(20,20))
# print (adj)

N = 99
a = adj.stack().tolist()[N]
print (a)
0.6171449136207239

b = adj.iloc[N // adj.shape[0], N % adj.shape[1]]
print (b)
0.6171449136207239