#python #dataframe
#python #фрейм данных
Вопрос:
У меня есть фрейм данных, как показано ниже:
Я хотел бы передать каждую строку в функцию и вернуть новый фрейм данных с дополнительным столбцом с именем «километр».
Мое имя данных — «поезд».
from math import sin, cos, sqrt, atan2, radians
def find_distance(train):
# approximate radius of earth in km
R = 6373.0
lat1 = radians(lat1)
lon1 = radians(lon1)
lat2 = radians(lat2)
lon2 = radians(lon2)
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat / 2)**2 cos(lat1) * cos(lat2) * sin(dlon / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
distance = R * c
return distance
Как я могу иметь другой фрейм данных, который имеет «Километр», который является возвращаемым значением расстояния?
Я могу загрузить любую из серий, таких как train.pickup_longitude.
Ответ №1:
Используйте .apply()
train['kilometer'] = train.apply(find_distance,axis=1)
Вам нужно будет выровнять имена столбцов и имена функций.