Проверьте, находятся ли значения столбца в пределах диапазона

Трудно определить ваш реальный вопрос, но если самолет имеет четкое представление о небе, то он будет прикрепляться к нескольким спутникам GPS и сообщать о местоположении через вызов, как показано ниже. Если у вас нет четкого представления о небе (технически южная экспозиция), то GPS не сможет установить соединение с GPS-спутниками и не будет сообщать о местоположении. В отличие от вашего мобильного телефона (который может использовать GPS, сайт сотовой связи и WIFI, чтобы найти себя), в самолетах есть только GPS.

                Application.getAircraftInstance().getFlightController().setStateCallback(new FlightControllerState.Callback() {
                    @Override
                    public void onUpdate(FlightControllerState djiFlightControllerCurrentState) {

                    }
                });
2
задан coldspeed 19 January 2019 в 20:56
поделиться

2 ответа

Что касается того, почему Панды выдавали это конкретное предупреждение A value is trying to be set on a copy of a slice... и как его избежать:

Во-первых, использование этого синтаксиса должно предотвратить сообщение об ошибке:

result.loc[:,'Latitude'] = result['Latitude'].apply(numbers)

[ 1113] Панды предупредили вас, потому что ваша функция .apply() может пытаться изменить временную копию копии столбцов Latitude / Longitude в вашем фрейме данных. Это означает, что столбец копируется в новое место в памяти перед выполнением операции с ним. В статье, на которую вы ссылались ( http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy ), приведены примеры того, почему это может привести к непредвиденным проблемам в определенные ситуации.

Вместо этого Pandas рекомендует вместо этого использовать синтаксис, который обеспечит изменение представления столбца вашего информационного кадра с помощью операции .apply(). Это гарантирует, что ваш фрейм данных будет изменен так, как вы ожидаете. Код, который я написал выше с использованием .loc, сообщит Pandas о доступе и изменении содержимого этого столбца на месте в памяти, и это не позволит Pandas выдать предупреждение, которое вы видели.

0
ответ дан James Dellinger 19 January 2019 в 20:56
поделиться

Если вы не хотите изменять df, я бы предложил избавиться от apply и векторизовать это. Одним из вариантов является использование eval.

u = df.assign(Latitude=df['Latitude'].str[:-1].astype(float))
u['Longitude'] = df['Longitude'].str[:-1].astype(float)

df[u.eval("24 < Latitude < 30 and 79 < Longitude < 87")]

У вас есть больше вариантов, используя Series.between:

u = df['Latitude'].str[:-1].astype(float))
v = df['Longitude'].str[:-1].astype(float))

df[u.between(24, 30, inclusive=False) & v.between(79, 87, inclusive=False)]
0
ответ дан coldspeed 19 January 2019 в 20:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: