@Andrew_Novikov

Как вычесть значения одного датафрейма из другого с условиями?

У меня есть два датафрейма. Условно df3 и df4 (на изображениях) 62ebb00644fd2150671362.png62ebb01015601120306383.png

Я хочу создать новый столбец и посчитать разницу значений столбца "Distance":
df3['Delta'] = df3['distance'] - df4['distance']

Проблема в том, что данные идут в разнобой и отсортировать их приведя к одному виду не получается.
Отсюда вопрос, можно ли написать цикл, который бы проверял кажую строку и при условии равенства имени, даты и номера раунда производил вычисление.
  • Вопрос задан
  • 624 просмотра
Решения вопроса 1
@Andrew_Novikov Автор вопроса
Придумал, как это сделать. Написан в виде черновика, но проверил - работает. Все строится воокург функции pd.query( ). Создаем цикл, вытаскиваем нужные данные по индеку. Подставляем их в функцию pd.query( ). Она выдает нам индекс подходящей строки. А дальше уже полученный идекс подставляем в наши расчеты. Т.е. как то так:
start = 0
for i in df3['Opponent']:
j = df3['Date'][start]
k = df3['Round'][start]
index = df4.query('Fighter =="'+f'{i}'+'" & Date == "' + f'{j}' + '" & Round == "' + f'{k}' + '"').index.tolist()
df3['Delta'][start] = df3['Distance'][start] - df4['Distance'][index[0]]
start +=1
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы