从数据框中获取数据并传递给函数的方法,然后使用新列返回另一个数据框

时间:2019-04-15 11:13:29

标签: python dataframe

我有一个如下数据框:

enter image description here

我想将每一行传递到函数中,并返回一个带有额外列“ kilometer”的新数据框。

我的数据名称是“火车”。

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 个答案:

答案 0 :(得分:0)

使用.apply()

train['kilometer'] = train.apply(find_distance,axis=1)

您需要将列名和函数名对齐。