С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для VistaSV30
986 / 330 / 79
Регистрация: 10.04.2012
Сообщений: 1,239
Записей в блоге: 4

Расставить ранги

07.04.2022, 13:12. Показов 1535. Ответов 2

Студворк — интернет-сервис помощи студентам
Добрый день!

Исходные данные - d1
Ключи - d2

Что должно получится в итоге - d3


Python
1
2
3
4
5
6
7
8
9
10
11
12
import pandas as pd
 
d1 = pd.DataFrame({'F2': [100,100,100,100,200,200,200,200], 
                  'Age': [1, 1, 5, 8, 1, 4, 5, 7]})
 
d2 = pd.DataFrame({'F2': [100,100,100,200,200,200,200],
                  'Age': [2, 5, 8, 3, 7, 10, 15],
                  'Rang': [10, 20, 30, 10, 20, 30, 40]})
 
d3 = pd.DataFrame({'F2': [100,100,100,100,200,200,200,200,200,200], 
                  'Age': [1, 1, 5, 8, 1, 4, 5, 7, 12, 18],
                  'Rang': [10, 10, 20, 30, 10, 20, 20, 20, 40, 40]})
Как расставить ранги?
Например, в первой строке фрейма d3 ранг получен по следующим условиям:
d1.F2 == d2.F2
d1.Age принадлежит интервалу [0;2]
Следовательно d3.Rang = 3

Интервалы Age для F2 == 100:


Еще раз повторюсь. Мне нужно написать код, чтобы расставить ранги во фрейме d1 по условиям d2.
В итоге должен получится фрейм d3
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.04.2022, 13:12
Ответы с готовыми решениями:

Расставить скобки
Суть задачи, вводится алгебраическое выражение, содержащее целые положительные числа и знаки операций: плюс, минус и умножить. Деление не...

Расставить табуляцию
s = input() L = "(}>" L1 = s.count('(') L2 = s.count('') R3 = s.count('}') R4 = s.count('>') stack = err = False for c in...

Расставить элементы массива
Расставить элементы массива так, чтобы максимальная разница между двумя соседними элементами была как можно меньше(первый и последний...

2
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,315
07.04.2022, 15:03
Лучший ответ Сообщение было отмечено VistaSV30 как решение

Решение

VistaSV30,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import pandas as pd 
import numpy as np
 
df1 = pd.DataFrame({'F2': [100]*4 + [200]*6,
                'Age': [1,1,5,8,1,4,5,7,12,18]})
df2 = pd.DataFrame({'F2': [100]*3 + [200]*4,
                'Age': [2,5,8,3,7,10,15], 
                'Rang': [10,20,30,10,20,30,40]})
 
tmp = pd.concat([df1.reset_index(),df2]).sort_values(by=['F2','Age'])
tmp.Rang = tmp.Rang.bfill().ffill()
df3 = tmp[tmp['index']==tmp['index']].drop(columns='index')
print(df3)
1
 Аватар для VistaSV30
986 / 330 / 79
Регистрация: 10.04.2012
Сообщений: 1,239
Записей в блоге: 4
07.04.2022, 18:00  [ТС]
Чисто для себя сделал.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import pandas as pd
 
d1 = pd.DataFrame({'F2': [100]*4 + [200]*6 + [400],
                'Age': [1,1,5,8,1,4,5,7,12,18,1]})
d2 = pd.DataFrame({'F2': [100]*3 + [200]*4+[300]*1,
                'Age': [2,5,8,3,7,10,15,1], 
                'Rang': [10,20,30,10,20,30,40,10]})
 
d3 = d1.copy()
d3['Rang'] = 0
 
def rng(f, a):
    ls = [0, *list(d2.Age[d2.F2 == f])]
    ls[-1] = 1000
    if f in list(d2.F2):  # Обработка случаев если в d1.F2 есть значение, котрого нет в d2.F2
        idx = [i for i in range(len(ls)-1) if a>ls[i] and a<=ls[i+1]][0]
        return d2.Rang[d2.index[d2.F2 == f][0] + idx] 
    else:
        return -1
    
d3.Rang = [rng(d3.F2[i], d3.Age[i]) for i in d1.index]
d3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.04.2022, 18:00
Помогаю со студенческими работами здесь

Расставить буквы по клеткам
Не могу разобраться как делать!

Ранги не выставляются
Подскажите, пожалуйста, ранги выставить не получается по MAX(Rate) OVER (PARTITION BY edh.DepartmentID), как сделать? SELECT DISTINCT ...

Медали и ранги
подскажите, возможно ли на wordpress сделать медали пользователям(за сообщения, конкурсы и т.д) ?

Сравнить ранги неполных матриц
Ранг находит, но является ли этот ранг верным, ведь матрица неполная , если является , то интересно как вообще находится ранг для неполной...

Определить ранги для числового ряда
Добрый день, как определить 4 ранга для числового ряда , например, 1456 542 489 6598 475 6324 4563 218


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru