#定义空的list存放每次循环的表
ls=[]
#对不同时间做循环
for t in testdata['Time'].drop_duplicates():
#给定时间条件
tmp = testdata[testdata['Time']==t]
#提取这一时刻出现的所有ID([[]]才会生成表格)
tmp1=tmp[['ID']]
#设定临时列
tmp1['tmp']=1
#做表连接,生成两两之间的对应表
tmp1=pd.merge(tmp1,tmp1,on = ['tmp'])
#只保留这个表的一半
tmp1 = tmp1[tmp1['ID_x']>tmp1['ID_y']]
#把其他信息连接到对应表上
tmp.columns = ['ID_x','Time_x','lon_x','lat_x']
tmp1 = pd.merge(tmp1,tmp,on='ID_x')
tmp.columns = ['ID_y','Time_y','lon_y','lat_y']
tmp1 = pd.merge(tmp1,tmp,on='ID_y')
#删除多余的列,重命名列
tmp1 = tmp1.drop(['tmp','Time_y'],axis = 1).rename(columns={'Time_x':'Time'})
ls.append(tmp1)
#最后合并表
pd.concat(ls) #多个list合成一个dataframe
ls