间隔之间如何操作

时间:2019-09-11 13:38:51

标签: python pandas dataframe

我的工作表中有这些数据:

Latitude    Longitude    Azimute
18S552692   48W115602    147.3
18S552692   48W115602    147.3
18S552692   48W115602    238
18S552692   48W115602    238
18S512059   48W083353    218
18S571230   48W104380    327.3

Latitude    Longitude    Azimute
20S484430   47W533466    49.5
20S461580   47W502728    229.5
 (...)        (...)       (...)

我只需要在Azimute行中选择147.3至327.3、49.5至229.5等。之后,减去147.3-(减去)所有其他值(在该间隔内),如果结果为+ -180(或多或少),则获得该对的经度和纬度。

例如:147.3-147.3 = 0未选择。但是147.3-327,3 = -180是可以接受的, 比选择一对:

Latitude    Longitude    Azimute
18S552692   48W115602    147.3
18S571230   48W104380    327.3

我尝试过,但是我不知道缺少什么...

df["Azimute"] = pd.to_numeric(df["Azimute"], errors='coerce')
j = 0
for i in range(0, len(df)):
    if df.iloc[i, 5] != 'Nan':
       while df.iloc[j, 5] != 'Nan':
           azimute = abs(df.iloc[i, 5] - df.iloc[j + 1, 5])
           if 178 <= azimute <= 181:
               print("Latitude A: ", df.iloc[i, 0])
               print("Longitude A: ", df.iloc[i, 1])
               print("Latitude B: ", df.iloc[j + 1, 0])
               print("Longitude B: ", df.iloc[j + 1, 1])
               j = j + 1
           else:
               df.iloc[j, 5] = 'Nan'
    else:
        continue

0 个答案:

没有答案