Pandas изменение двух колонок данных с помощью функции
Есть DataFrame в котором 3 колонки: широта, долгота, высота.
Есть моя функция WGStoMSK которая принимает два значения (широту и долготу) и возвращает координаты в местной системе координат в виде списка [широта, долгота].
Как мне заменить в DataFrame широту и долготу на местную?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Набросал вам пример, от которого можете дальше плясать:
import pandas as pd
import numpy as np
def WGStoMSK(row):
longitude, latitude = row
return [1 - longitude, 1 - latitude]
df = pd.DataFrame(np.random.rand(10, 3), columns=('широта','долгота','высота'))
df.loc[:, ['широта', 'долгота']] = \
df.loc[:, ['широта', 'долгота']].apply(WGStoMSK, axis=1, result_type='broadcast')
В случае, если ваша функция жёстко задана и вы не можете поменять её входные аргументы, можно сделать так:
def WGStoMSK(longitude, latitude):
return [1 - longitude, 1 - latitude]
...
df.loc[:, ['широта', 'долгота']] =\
df.loc[:, ['широта', 'долгота']] \
.apply(lambda x: WGStoMSK(x['широта'], x['долгота']), axis=1, result_type='broadcast')