它可以在 iterrows() 函数的帮助下完成 .
这是代码:
first table creation :
value=[(0,11,10,20),(1,22,11,21),(2,33,12,22),(3,44,13,23),(4,55,14,24),
(5,66,15,25),(6,77,16,26),(7,88,17,27),(8,99,18,28)]
header=["index","time","vel","yaw"]
df1 = pd.DataFrame.from_records(value, columns=header)
second table creation :
value=[(0,67,"nan","nan"),(1,75,"nan" ,"nan" ),(2,87,"nan" ,"nan" )
(3,99,"nan" ,"nan" )]
header=["index","time","vel","yaw"]
df2 = pd.DataFrame.from_records(value, columns=header)
storing the result 在df2本身:
for index, row in df2.iterrows():
min=10000000
for indexer, rows in df1.iterrows():
if abs(row['time']-rows['time'])
min = abs(row['time']-rows['time'])
#storing the position
pos = indexer
df2.loc[index,'vel'] = df1['vel'][pos]
df2.loc[index,'yaw'] = df1['yaw'][pos]