Я довольно новый пользователь Python и застрял в проблеме. Любое руководство будет с благодарностью.
У меня есть фрейм данных pandas с тремя столбцами «ID», «Intervention» и «GradeLevel». Смотрите код ниже:
data = [[100,'Long', 0], [101,'Short', 1],[102,'Medium', 2],[103,'Long', 0],[104,'Short', 1],[105,'Medium', 2]]
intervention_df = pd.DataFrame(data, columns = ['ID', 'Intervention', 'GradeLevel'])
Затем я создал словарь фреймов данных, сгруппированных по «Вмешательству». Смотрите код ниже:
intervention_dict = {Intervention: dfi for Intervention, dfi in df.groupby('Intervention')}
Мой вопрос: можете ли вы перебирать значения словаря и манипулировать каждым значением словаря? В частности, я пытаюсь ссылаться на справочную таблицу. Таблица поиска может рассматриваться как список. Моя цель - пометить кого-либо в списке как «Да - Название вмешательства » или «Нет Интервенция ». Это становится непросто, потому что, скажем, у Long Intervention, например, есть только GradeLevel 0. Это означает, что я хотел бы пометить кого-либо в интервенционном файле с уровнем 0 как «Да - Длинный», а кого-то, кто не находится в интервале - как «Нет - Длинный». это станет новым столбцом под названием «Значение». Мне также необходимо создать другую переменную «Категория», которая будет указывать имя вмешательства, в этом примере это будет просто «Длинная»
lookup_data = [[100, 0], [101, 1],[102, 2],[103, 0],[104, 1],[105, 2], [106, 0], [107, 0],[108, 2],[109, 1]]
lookup_df = pd.DataFrame(lookup_data, columns = ['ID', 'GradeLevel'])
Например, словарь 'Long' будет выглядеть после обработки:
longint_data = [[100,'Long', 'Yes - Long'],[103,'Long', 'Yes - Long'], [106,'Long', 'No - Long'], [107,'Long', 'No - Long']]
longint_df = pd.DataFrame(longint_data, columns = ['ID','Category', 'Value'])
Желаемый конечный результат после всех манипуляций будет выглядеть так:
result_data = [[100,'Long', 'Yes - Long'] , [101,'Short','Yes - Short'], [102,'Medium','Yes - Medium'], [103,'Long', 'Yes - Long'], [104,'Short','Yes - Short'] , [105, 'Medium','Yes - Medium'], [106,'Long', 'No - Long'], [107,'Long', 'No - Long'], [108,'Medium','No - Medium'], [109,'Short','No - Short']]
result_df = pd.DataFrame(result_data, columns = ['ID','Category', 'Value'])
Спасибо!