通过匹配键联接数据帧

2024-09-20 22:53:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试连接两个具有匹配密钥的数据帧。目前,我已经尝试了三种可能的方法:测向合并, 数据框连接, 定向凝固但是运气不好。你知道吗

#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 

我想得到的结果是数据帧:

#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])

但我得到了如下结果数据帧:

#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 

知道如何通过匹配的PageId键连接两个数据帧吗?你知道吗


Tags: 数据方法dataframedfby密钥resulttimestamp
3条回答

你可以使用merge

df1.merge(df2 , on = ['Timestamp','PageId'])

试试看

 pd.merge(df1,df2 , on = 'PageId' , how = 'inner')

当我只想引入一列时,我尽量避免合并。 这将创建一个以PageId为键、QueryCount为值的字典,然后从字典中创建QueryCount列。你知道吗

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

df1['QueryCount'] = df1['PageId'].map(queryCountDict)

相关问题 更多 >

    热门问题