Как объединить два кадра данных за интервал?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как объединить два кадра данных за интервал?

Сообщение Anonymous »

У меня есть два кадра данных, mp и sp.
mp содержит маршрут состояния (int), отметки ~1/10 миль (с плавающей запятой), широту (с плавающей запятой), долготу (с плавающей запятой). .

Код: Выделить всё

            route  milepost         lon         lat
2091        2      0.0              -122.189880 47.979063
2667        2      0.1              -122.188067 47.979760
2159        2      0.2              -122.186210 47.979560
1174        2      0.3              -122.184197 47.979098
1878        2      0.4              -122.182098 47.978718
sp имеет маршрут состояния (int), ~ мильный столб (float), где начинается и заканчивается ограничение скорости, а также ограничение скорости (int).

Код: Выделить всё

      route    begin       end          limit
3119  2        0.000000    0.130000     30
2787  2        0.130000    2.880000     55
3184  2        2.880000    12.080000    60
3035  2        12.080000   12.720000    55
2780  2        12.720000   14.220000    45
2777  2        14.220000   15.450000    35
2774  2        15.450000   21.500000    55
Я хочу иметь один кадр данных (sp + ограничение скорости), но не могу присоединиться к государственному маршруту и ​​контрольному столбу. Как я могу применить ограничение скорости к каждому столбу в милях в зависимости от интервала? То есть для государственного маршрута 2, верстовой столб 0, 0,1, ограничение скорости = 30; веха 0,2, 0,3, ..., 2,8, ограничение скорости = 55; и т. д.

Код: Выделить всё

            route  milepost         lon         lat       limit
2091        2      0.0              -122.189880 47.979063 30
2667        2      0.1              -122.188067 47.979760 55
2159        2      0.2              -122.186210 47.979560 55
...
2789        2      2.8              -122.134982 47.972241 60
1388        2      2.9              -122.133974 47.970995 60
1609        2      3.0              -122.132964 47.969750 60
Я пробовал объединить панды, но потерял много строк. Попытался выполнить нечеткое объединение с помощью fuzzypanda, но получил сообщение об ошибке: fuzzypanda.matching не существует (единственный метод, который у него должен быть!), поэтому невозможно создать нечеткий столбец для слияния.
Следующее тоже не сработало. :

Код: Выделить всё

for route in mp['route']:
for milepost in mp['milepost']:
if (route == sp['route']) & (milepost >= sp['begin']) & (milepost 

Подробнее здесь: [url]https://stackoverflow.com/questions/78410827/how-to-merge-two-dataframes-on-an-interval[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»