0
我试着去这个数据进行排序,从这个去:如何在numpy的阵列从列移动数据/行到另一台基于在第三列值
基本上,我试图压缩5行数据,每个数据有1个ID和2个值,分成1行数据和1个ID和10个值。我的数据是约。长达600万行。有一件事要注意:并非每个组都有5(X,Y)坐标值。一些只有4.
我无法弄清楚如何通过索引单独做到这一点。所以我写了一个for循环,这并不很好。它会排序第一个10,000确定(但以错误结束),但它需要永远。
coords = pd.read_csv('IDQQCoords.csv')
coords = coords.as_matrix(columns=None)
mpty = np.zeros((len(coords),8),dtype=float)
#creates an empty array the same length as coords
coords = np.append(coords,mpty,axis=1)
# adds the 8 empty columns from the previous command
#This is to make space to add the values from subsequent rows
cnt = 0
lth = coords.shape[0]
for counter in range(1,lth):
if coords[cnt+1,0] == coords[cnt,0]:
coords[cnt,3:5] = coords[cnt+1,1:3]
coords = np.delete(coords,cnt+1,axis=0)
if coords[cnt+1,0] == coords[cnt,0]:
coords[cnt,5:7] = coords[cnt+1,1:3]
coords = np.delete(coords,cnt+1,axis=0)
if coords[cnt+1,0] == coords[cnt,0]:
coords[cnt,7:9] = coords[cnt+1,1:3]
coords = np.delete(coords,cnt+1,axis=0)
if coords[cnt+1,0] == coords[cnt,0]:
coords[cnt,9:11] = coords[cnt+1,1:3]
coords = np.delete(coords,cnt+1,axis=0)
cnt = cnt+1
有人可以帮助我,无论是与索引或更好的循环?
由于一吨
这是完美的!万分感谢 – joswhite