将两个数据框与两个共同的列组合起来--python [replicate] 。

问题描述 投票:0回答:1

我有两个数据框,df1。

        JobId   WorkOrderNo TradeName       TradeMasterId   TechnicianId    Rating
    0   10112   samsung10112    Plumbing        1074              NaN          NaN
    1   10112   samsung10112    Plumbing        1074              NaN          NaN
    2   10112   samsung10112    Plumbing        1074              1332.0    2.962963
   295  10161   samsung10161    Carpenter       1090                NaN       NaN
   296  10161   samsung10161    Carpenter       1090              1337.0    3.724138
   297  10161   samsung10161    Carpenter       1090              1296.0    3.526316
   298  10161   samsung10161    Carpenter       1090              1296.0    3.526316

df2,

    TechnicianId    UserName    TradeMasterId   LateNight   Weekends    WeekDays
0   1296            ramzee rr   1090                True    False        True
1   1325            Arun Guna   1089                True    True         True
2   1326          Rajesh Thiru  1074                False   False        True
4   1336              RR RR     1068                False   False        True 

现在,我想利用这两个数据框中的两个公共列来合并这两个数据框,我希望最终的数据集是这样的。

            JobId   WorkOrderNo TradeName       TradeMasterId   TechnicianId         Rating        LateNight   Weekends   Weekdays

        0   10112   samsung10112    Plumbing        1074              NaN          NaN            False  False       True
        1   10112   samsung10112    Plumbing        1074              NaN          NaN            False  False       True 
        2   10112   samsung10112    Plumbing        1074              1332.0    2.962963          False  False       True
       295  10161   samsung10161    Carpenter       1090                NaN       NaN             True   False       True
       296  10161   samsung10161    Carpenter       1090              1337.0    3.724138          True   
False        True         
       297  10161   samsung10161    Carpenter       1090              1296.0    3.526316          True   
False        True
       298  10161   samsung10161    Carpenter       1090              1296.0    3.526316          True   
False        True

谁能帮帮我?

python python-3.x pandas dataframe pandas-groupby
1个回答
0
投票

试试这个。

new_df = pd.merge(df1, df2, on=["TradeMasterId", "TechnicianId"])


-1
投票

你可能想用左连接。根据一个什么你的关键是你可以使用。

mergeddf = df.set_index("TechnicianId").join(df2.set_index("TechnicianId"))

检查出 pandas.Dataframe.join 文档中获取更多信息。

希望能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.