DromiX
DromiX

Reputation: 563

Compare two data frames for different values in a column

I have two dataframe, please tell me how I can compare them by operator name, if it matches, then add the values ​​of quantity and time to the first data frame.

In [2]: df1                              In [3]: df2
    Out[2]:                                  Out[3]:
       Name   count   time                      Name   count   time           
    0  Bob      123   4:12:10                 0 Rick       9   0:13:00
    1  Alice     99   1:01:12                 1 Jone       7   0:24:21
    2  Sergei    78   0:18:01                 2 Bob       10   0:15:13
    85 rows x 3 columns                       105 rows x 3 columns

I want to get:

In [5]: df1                              
    Out[5]:                                  
       Name   count   time                                 
    0  Bob      133   4:27:23                 
    1  Alice     99   1:01:12                
    2  Sergei    78   0:18:01                 
    85 rows x 3 columns

Upvotes: 2

Views: 65

Answers (1)

Andy L.
Andy L.

Reputation: 25269

Use set_index and add them together. Finally, update back.

df1 = df1.set_index('Name')
df1.update(df1 + df2.set_index('Name'))
df1 = df1.reset_index()

Out[759]:
     Name  count     time
0     Bob  133.0 04:27:23
1   Alice   99.0 01:01:12
2  Sergei   78.0 00:18:01

Note: I assume time columns in both df1 and df2 are already in correct date/time format. If they are in string format, you need to convert them before running above commands as follows:

df1.time = pd.to_timedelta(df1.time)
df2.time = pd.to_timedelta(df2.time)

Upvotes: 1

Related Questions