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')
→ Ссылка