Присоединиться к DataFrames с помощью соответствующего ключа - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь соединить два DataFrames с соответствующим ключом.В настоящее время я пробовал все три возможных метода: df.merge, df.join, df.concat, но безуспешно.

#DataFrame 1: 
#  Timestamp  PageId LoadDuration
#  01/01/2019 1      10
#  01/01/2019 2      20
#  01/01/2019 3      30

#DataFrame 2:
#  Timestamp   PageId    QueryCount
#  01/01/2019  1         5
#  01/01/2019  2         3
#  01/01/2019  3         4 

И что я пытаюсь получить, в результате DataFrame:

#Result DataFrame:
#  Timestamp  PageId LoadDuration QueryCount
#  01/01/2019 1      10           5
#  01/01/2019 2      20           3
#  01/01/2019 3      30           4

Это моя строка конкатенации:

finalized_grouped_by_df = pd.concat([df1,df2])

Но я получаю что-то вроде следующего результата DataFrame:

#Current Result DataFrame:
#                    LoadDuration
#  (01/01/2019,1)      10
#  (01/01/2019,2)      20
#  (01/01/2019,3)      30
#                    QueryCount
#  (01/01/2019,1)         5
#  (01/01/2019,2)         3
#  (01/01/2019,3)         4 

Любая идея, как можноЯ присоединяюсь к обоим DataFrames по их соответствующему ключу PageId?

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Вы можете сделать это, используя merge

df1.merge(df2 , on = ['Timestamp','PageId'])
0 голосов
/ 28 февраля 2019

Я стараюсь избегать слияния, когда просто хочу внести один столбец.Это создает словарь с PageId в качестве ключа и QueryCount в качестве значений, а затем создает столбец QueryCount из словаря.

queryCountDict = df2.set_index('QueryCount')['PageId'].to_dict()

df1['QueryCount'] = df1['PageId'].map(queryCountDict)
0 голосов
/ 28 февраля 2019

Попробуйте

 pd.merge(df1,df2 , on = 'PageId' , how = 'inner')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...