我有一个熊猫邻接数据框,在这里我需要能够通过其物理编号位置,索引或列位置或其坐标来标识该数据框上的任何元素。
数据帧是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]
(或任何其他告诉我该位置的值的数字。这也可以很好地工作,但是我希望能够保持邻接矩阵完整。任何帮助将不胜感激!
谢谢!
答案 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