我想删除重复坐标。坐标在 x 和 y 列中分开。 我在第一辆车坐标中有一个重复(5,7) 我在第二辆汽车坐标 (4,5) 中有一个副本
我有这个:
cars = pd.DataFrame({'x': [[1,2,3,4,5,5,5,7],[4,4,5,6,7,8]],
'y': [[3,4,5,6,7,7,8,9],[5,5,6,7,8,9]]})
我想要这个:
cars = pd.DataFrame({'x': [[1,2,3,4,5,5,7],[4,5,6,7,8]],
'y': [[3,4,5,6,7,8,9],[5,6,7,8,9]]})
我已经尝试过这个并且它有效,只是我认为用熊猫可以更快地解决它,有什么想法吗?
for i in range(2):
k= len(cars['x'][i])
for j in range(k-2):
if (cars['x'][i][j] == cars['x'][i][j+1]) & (cars['y'][i][j] == cars['y'][i][j+1]):
cars['x'][i] = np.delete(cars['x'][i], [j + 1])
cars['y'][i] = np.delete(cars['y'][i], [j + 1])
k+=1
print(cars)
答案 0 :(得分:1)
只需使用 applymap()
方法:-
cars=cars.applymap(lambda x:set(x))
cars=cars.applymap(lambda x:list(x))
编辑:如果您不想在 z 列中应用此条件,请使用 apply()
方法:-
cars['x']=cars['x'].apply(lambda x:set(x)).apply(lambda x:list(x))
cars['y']=cars['y'].apply(lambda x:set(x)).apply(lambda x:list(x))