比较两个数据帧中一列中的不同值

时间:2020-01-08 21:08:47

标签: pandas dataframe

我有两个数据框,请告诉我如何用运算符名称比较它们,如果匹配,则将数量和时间的值添加到第一个数据框。

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

我想得到:

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

1 个答案:

答案 0 :(得分:1)

使用set_index并将它们添加在一起。最后,更新回来。

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

注意:我假设timedf1中的df2列已经采用正确的日期/时间格式。如果它们是字符串格式,则需要先转换它们,然后再运行以下命令:

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