通过在两列上应用函数来创建变量-Pandas

时间:2019-09-10 15:04:09

标签: pandas

我的数据框包含以下变量: ID,日期,时间,纬度(以度为单位),经度(以度为单位)和Y(二进制)。

我想计算一行中的点和它之前的一行中的点(point1-point0,point2-point1等)之间的距离。 *每个ID的第一行必须包含0,因为在它之前没有行。 *我定义了一个函数来计算两个点之间的距离。此函数必须获取以下参数:(lat1,lat2,lon1,lon2)。 因此,可以通过在“纬度”和“经度”列上应用此功能来创建“距离”变量。

此外,我想创建累积距离变量,该变量显示基于“距离”变量的累积距离。当“ Y”变量的值等于1时,将为每个ID重置“累计距离”变量。

此外,我想为每个ID创建一个变量,以显示自“ Y”变量获得值1以来已经过了多少天。并将其重置为“累积距离”变量。

数据说明:

ID  date        time    latitude    longitude   Y
1   08/27/2019  18:00   Lat1        Lon1        0
                19:00   Lat2        Lon2        0
                20:00   ..          ..          1
                21:00   ..          ..          0
    08/28/2019  18:00   ..          ..          0
2   07/08/2019  19:00   ..          ..          0
                08:00   ..          ..          1
                09:00   ..          ..          0
                10:00   ..          ..          0

预期结果:

ID  date    time    latitude    longitude   distance    cum_distance    Days    Y
1   08/27/2019  18:00   Lat0    Lon0        0               0           0       0
                19:00   Lat2    Lon1        30              30          0       0
                20:00   ..      ..          20              50          0       1
                21:00   ..      ..          40              40          0       0
    08/28/2019  18:00   ..      ..          20              60          0       0
2   07/08/2019  19:00   ..      ..          0               0           0       0
                08:00   ..      ..          20              20          0       1
                09:00   ..      ..          30              50          0       0
                10:00   ..      ..          10              60          0       0

0 个答案:

没有答案