Манипулирование данными в пандах - питон

1

Я понимаю, что это может быть очень простой вопрос, однако я новичок в python, и я не уверен, как очень эффективно манипулировать кадрами данных pandas.

В качестве примера можно привести:

   Job                Skill                   RelationType
 Director            Manage staff                essential
 Director            Manage  staff               optional

цель

В качестве примера можно привести:

   Job                Skill                   RelationType
Director            Manage staff                essential
Director            Manage  staff               essential

В идеале я хочу написать функцию, которая, когда RelationType отличается, но навык одинаковый, он перезаписывается и заменяется в этом случае на существенное. Таким образом, для одной и той же работы существенное умение будет всегда более важным, чем необязательное.

решаемая

df['RelationType'] = df.groupby(['Jobs', 'Skill'])['RelationType'].transform('min')
  • 0
    Как вы определяете, какие типы отношений имеют приоритет в каждой группе?
Теги:
pandas
data-manipulation

1 ответ

1
Лучший ответ

Категориальные данные полезны для этой задачи. Сначала конвертируйте RelationType в категориальный ряд, сначала упорядоченный с более приоритетными значениями.

Затем выполните операцию GroupBy по ключевым полям, используя функцию min чтобы выбрать наиболее приоритетную категорию.

df['RelationType'] = pd.Categorical(df['RelationType'], ordered=True,
                                    categories=['essential', 'optional'])

df['RelationType'] = df.groupby(['Job', 'Skill']).transform('min')

print(df)

        Job        Skill RelationType
0  Director  ManageStaff    essential
1  Director  ManageStaff    essential
  • 0
    спасибо за руководство, мне пришлось немного изменить, чтобы работать .. Но спасибо, что предоставили мне новый инструмент ... очень хорошо, эта функция transform df ['RelationType'] = df.groupby (['Jobs', 'Skill ']) [' RelationType ']. преобразования (' мин)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню