Я уже прочитал ответы и записи в блоге о том, как выполнить итерацию pandas.DataFrame (https://engineering.upside.com/a-beginners-guide-to-optimizing-pandas-code-for-speed-c09ef2c6a4d6),, но у меня все еще остается один вопрос.
В настоящее время мой DataFrame представляет собой траекторию GPS, содержащую столбцы время, долгота и широта . Теперь я хочу вычислить функцию, называемую расстояние до следующей точки . Поэтому мне нужно не только перебирать строки и выполнять операции надотдельные строки, но для доступа к последующим строкам за одну итерацию.
i=0
for index, row in df.iterrows():
if i < len(df)-1:
distance = calculate_distance([row['latitude'],row['longitude']],[df.loc[i+1,'latitude'],df.loc[i+1,'longitude']])
row['distance'] = distance
Помимо этой проблемы, у меня возникает та же проблема при расчете скорости, применении сглаживания или других подобных методов.
Другой пример: я хочу искать точки данных со скоростью == 0 м / с, и исходя из этих точек, я хочу добавить все последующие точки данных в массив, пока скорость не достигнет 10 м / с (чтобы найти сегменты ускорения от 0 м / сдо 10 м / с).
Есть ли у вас какие-либо предложения о том, как кодировать подобные вещи настолько эффективно, насколько это возможно?