Способ «слияния» фреймов данных с совпадающими значениями, но сложными взаимодействиями - PullRequest
0 голосов
/ 17 июня 2020

У меня есть два разных DataFrames, которые я хочу объединить со столбцами EventNames и Class Code. Я видел несколько тем, которые там есть, но не смог найти решение своей проблемы. Я также читал этот документ и пробовал разные комбинации, однако они не сработали. У меня есть один массивный pandas фрейм данных с такой структурой:

df1:

    Event   F1Score C3Score
0    A         4       3
1    B         2       4
2    C         3       5
3    D         4       4
4    E         5       5
...  ...      ...     ...
100  Z         2      5

И второй, поменьше, вот так:

df2

   Event   F1ScoreRequirement  F2ScoreRequirement
0    A            4                    3
1    D            4                    3
2    Z            4                    3

Фактически, у меня есть огромный фрейм данных всех возможных событий (классов) и средних баллов для каждой группы (когорты). А затем кучу небольших наборов данных, которые содержат необходимую оценку для каждого события (класса) для каждой группы (когорты).

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

GoalFrame

    Event   F1Score F1ScoreRequirement F2Score F2ScoreRequirement  C3Score ... D2Score
0    A         4       4                  3           3              ...
1    B         2                          4                          ...
2    C         3                          5                          ...
3    D         4       4                  4           3              ...
4    E         5                          5                          ...
...  ...      ...     ...                ...         ...             ...
100  Z         2       5                  5           3              ...

Мне удалось сделать это вручную, но база данных довольно большая, и код работает очень медленно, поэтому я ищу Pandas -путь или numpy, чтобы сделать.

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете использовать df.merge: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html

В вашем коде

final_df = df1.merge (df2, how = 'inner ', on = [' Событие '])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...