Объединение данных, метод merge | Аналитик данных | karpov.courses

Решать задания к урокам: karpov.courses/analytics/demo
Полный курс «Аналитик данных»: bit.ly/3CRKiQA

Пікірлер: 8

  • @vitekofp
    @vitekofp Жыл бұрын

    Спасибо. Теперь всё понятно. До этого как вилами по воде.

  • @kriptozavod7375
    @kriptozavod7375 Жыл бұрын

    Объяснили тему, над которой я страдал 1,5 часа, спасибо вам большое❤

  • @kamranezi
    @kamranezi Жыл бұрын

    Очень понятно и быстро вспоминаешь по таким видео. Такой вопрос: Есть две pandas таблицы, каждая содержит два столбца. В первой это время и сердечный ритм. Во второй - это время и систолическое давление. Напишите код, который создает третью таблицу, в которой для каждого замера давления в той же строке содержится время и значение ближайшего замера сердечного ритма, если он был сделан обязательно до замера давления и не раньше, чем за 15 минут.Это обязательный вопрос * Пример: df_hr = pandas.DataFrame({'time': [datetime(2022,1,1,7,40), datetime(2022,1,1,9,50), datetime(2022,1,1,10,1)], 'hr': [60, 90,100]}) df_bp = pandas.DataFrame({'time': [datetime(2022,1,1,10), datetime(2022,1,1,8)], 'bp': [140, 120]}) Ожидаемый результат: pandas.DataFrame({ 'time_hr': [datetime(2022,1,1,9,50)], 'hr': [90], 'time_bp': [datetime(2022,1,1,10)], 'bp': [140]

  • @ihaid00k

    @ihaid00k

    Жыл бұрын

    Камран, вот код, который ты спрашивал: # импортируем pandas import pandas as pd # задаем таблицу с сердечным ритмом, использовать функцию datetime необязательно (!) df_hr = pd.DataFrame({'time': ['2022-1-1 07:40', '2022-1-1 09:50', '2022-1-1 10:01'], 'hr': [60, 90,100]}) # задаем таблицу с систолическим давлением df_bp = pd.DataFrame({'time': ['2022-1-1 10:00', '2022-1-1 8:00'], 'bp': [140, 120]}) # на этом шаге (!) конвертируем значения столбцов из строк в формат "дата и время" df_hr['time'] = pd.to_datetime(df_hr['time']) df_bp['time'] = pd.to_datetime(df_bp['time']) # создаем третью таблицу, куда мы будем записывать нужные нам записи df_result = pandas.DataFrame({'time_hr': [], 'hr': [], 'time_bp': [], 'bp': []}) # проходимся циклом по исходным двум таблицам # проходимся по каждой строке таблицы систолическим давлением for row_bp in df_bp.iterrows(): # проходимся по каждой строке таблицы с сердечным ритмом for row_hr in df_hr.iterrows(): # считаем разницу во времени между замерами систалического давления и сердечного ритма delta = row_bp[1][0] - row_hr[1][0] # если дельта больше 15 минут if delta >= datetime.timedelta(minutes=15): # то записываем результат в третью таблицу df_result = df_result.append({'time_hr': row_hr[1][0], 'hr': row_hr[1][1], 'time_bp': row_bp[1][0], 'bp': row_bp[1][1]},ignore_index=True) ВАЖНО: данный код записывает все замеры с дельтой больше 15 минут, то есть после данной обработки в результирующей таблице df_result необходимо будет найти минимальные значения, но это сделать не тяжело.

  • @user-rk6zz8zk3l
    @user-rk6zz8zk3l3 жыл бұрын

    А где ссылка? :)

  • @karpovcourses

    @karpovcourses

    3 жыл бұрын

    а о какой ссылке речь?)

  • @user-gq2zr4nt9o

    @user-gq2zr4nt9o

    3 жыл бұрын

    @@karpovcourses Добрый день. Полагаю, что о ссылке на статью о JOINах. Аня, в описании к видео информация, где искать статьи и материалы. А так, лови - habr.com/ru/post/448072/

  • @shapovalentine

    @shapovalentine

    Жыл бұрын

    @@user-gq2zr4nt9o но там её нет)

Келесі