Преобразование фрейма данных в многомерный массив в соответствии с форматом

#arrays #python-3.x #pandas #numpy #dataframe

#массивы #python-3.x #pandas #numpy #фрейм данных

Вопрос:

Я хочу создать многомерный массив из фрейма данных, который содержит более 60 000 строк.

Фрейм данных:

 latitude_1  longitude_1  latitude_2  longitude_2
40.781855   -73.877439   43.689741   -79.581691
40.780243   -73.874084   27.959553   -82.542491
40.781982   -73.878113   33.649540   -84.401093 

Я хочу создать массив с таким форматом (используя Python): [ [[lat1,lon1], [lat2,lon2]], [[lat1,lon1], [lat2,lon2]], [[lat1,lon1], [lat2,lon2]] ]

Есть ли способ сделать это? Я пытался и искал, но не смог найти что-то, что может разделить строку на два массива или что-то в этом роде.

Любая помощь будет оценена!

Ответ №1:

Здесь можно использовать обычный цикл for, это работает, но если количество строк очень велико, оно становится очень медленным.

 new_list = []
for i in range(len(df1)):
    new_list.append([[df1["latitude_1"][i],df1["longitude_1"][i]],[df1["latitude_2"][i],df1["longitude_2"][i]]])
  

Это будет быстрее, чем использование цикла for

 new_list = df.values.ravel()
new_list.reshape(len(df),2,2)

  

Комментарии:

1. @Sanya Если фрейм данных очень большой, вы можете использовать функцию изменения формы, которую я отредактировал и добавил 🙂