У меня есть датафрейм панд, как это ниже.Это дает мне расстояния в градусах от отдельных точек до следующих городов, а именно, Фарго, Оранж и Джерси-Сити.Но каждый столбец в приведенном ниже кадре данных, например «Фарго», имеет номера строк от 0 до 3, заполненные кратчайшими 4 расстояниями до любой из точек, а для остальных 8 строк он заполняется, потому что мы находим 4 кратчайших расстояния.в другой город "Апельсин" и так далее.Подводя итог приведенному ниже кадру данных
Points = ['Point1','Point4','Point5','Point2','Point2','Point5','Point1','Point4','Point3','Point6','Point4','Point1']
Fargo = [2.90300755828,3.91961324034,21.9825588597,24.3141420303,24.3141420303,21.9825588597,2.90300755828,3.91961324034,25.3599772676,25.8509998739,3.91961324034,2.90300755828]
Orange = [25.5464458592,27.1527975618,6.17298387907,4.80214941294,4.80214941294,6.17298387907,25.5464458592,27.1527975618,46.4066249652,45.8853687976,27.1527975618,25.5464458592]
Jersey_City = [21.1030418227,19.6763385681,39.3194029761,41.8121131045,41.8121131045,39.3194029761,21.1030418227,19.6763385681,2.09632277264,2.67885042284,19.6763385681,21.1030418227]
toy_data=pd.DataFrame(index=Points,columns=['Fargo','Orange','Jersey_City'])
toy_data['Fargo']= Fargo
toy_data['Orange']=Orange
toy_data['Jersey_City']=Jersey_City
Давайте скажем для столбца Fargo
первые 4 строки: строки с 0 по 3 представляют точки, которые имеют самые короткие расстояния от Fargo
.Аналогично, в столбце Orange
строки с 4 по 7 представляют точки, которые имеют кратчайшие расстояния до Orange
, а теперь в строках с 4 по 7 столбец Fargo
заполняется расстояниями от ближайших четырех точек до Orange
.Но мне нужен кадр, в котором я получаю 4 точки с кратчайшим расстоянием до каждого города в одном кадре данных.Итак, что вы видите здесь в столбце Fargo
строки 0-3 - это его 4 ближайшие точки, в столбце Orange
строки 4-7 - его ближайшие 4 точки, в столбце Jersey City
строки 8-11 - его 4ближайшие точки.Я хочу сохранить эти 4 ближайших пункта для каждого города и удалить оставшиеся, как я сделал ниже.То, что я хочу, это:
Fargo = [2.9030075582789885,3.919613240342197,21.982558859743925,24.314142030334484,'NAN','NAN','NAN','NAN','NAN','NAN','NAN','NAN']
Orange = ['NAN','NAN','NAN','NAN',4.802149412942695,6.172983879065276,25.546445859236265,27.15279756182145,'NAN','NAN','NAN','NAN']
Jersey_City = ['NAN','NAN','NAN','NAN','NAN','NAN','NAN','NAN',2.096322772642856,2.67885042283533,19.676338568056806,21.10304182269932]
result_wanted_data =pd.DataFrame(index= Points,columns = ['Fargo','Orange','Jersey_City'])
result_wanted_data['Fargo']=Fargo
result_wanted_data['Orange']=Orange
result_wanted_data['Jersey_City']=Jersey_City