将唯一项目和x y位置数据框到室友(共享位置)项目的网格中



我有一个数据帧,看起来像这个例子,
其中id是唯一的,但id可以共享位置,就像id 1和2共享0,0单元格

| id  |  x  |  y  |  
-----------------------
1|  1  |  0  |  0  | 
2|  2  |  0  |  0  | 
3|  3  |  1  |  2  |
4|  4  |  1  |  0  |
.
.

我想获得室友的数据帧,例如:
其中索引和列是根据id的,如果共享单元格,则值为1,否则为0

|  1  |  2  |  3  |  4  | ... 
---------------------------
1|  0  |  1  |  0  |  0  |
2|  1  |  0  |  0  |  0  |
3|  0  |  0  |  0  |  0  |
4|  0  |  0  |  0  |  0  |
.
.

因为这是一个大数据帧,所以函数需要向量化,而不使用apply方法,这些方法基本上是在行上循环

arr = df1.to_numpy()
arr = arr[1:]
mask = (arr[:, np.newaxis] == arr).prod(axis= 2)
df2 = pd.DataFrame(mask) 

最新更新