从for循环中的不同行获取值

时间:2019-06-10 17:25:06

标签: python pandas

我有一个Dataframe框架,如下所示,我需要在循环中从一行中选择LONG_Y,LAT_Y,并从下一行中选择LONG_X,LAT_X,这是for循环,但是它给出了Y和X坐标在同一行。

df = pd.DataFrame({'ID':[11, 12, 13], 'LAT_X':[-47.401666667,-44.198333333,-44.580753], 'LONG_X':[-22.564722221999997,-19.967777778,-22.500296], 'LAT_Y':[-47.401666667, -45.461666666999996,-46.3126902], 'LONG_Y':[-22.564722221999997,-22.9238888,-23.6378585]})

print(df)

for i in range(2):

    l1 = (df.loc[i,'LONG_Y'])
    l2 = (df.loc[i,'LAT_Y'])
    l3 = (df.loc[i,'LONG_X'])
    l4 = (df.loc[i,'LAT_X'])
    print(l1,l2,l3,l4)

我需要打印:

-22.564722221999997,-47.401666667,-19.967777778, -44.198333333

但是我得到了

-22.564722221999997,-47.401666667,-22.564722221999997, -47.401666667

1 个答案:

答案 0 :(得分:0)

像这样吗?

coords = []

for i in len(df['LAT_X']):
    l1 = (df.loc[i,'LAT_X'])
    l2 = (df.loc[i,'LONG_X'])
    l3 = (df.loc[i,'LONG_X'])
    l4 = (df.loc[i,'LAT_X'])
    # Append as a coordinate:
    #coords.append([l1, l2, l3, l4])
    # Or make a flat array:
    coords.append(l1, l2, l3, l4)


for coord in coords:
    print(coord)