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

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

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

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
pandas dataframe
1个回答
0
投票

使用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)
© www.soinside.com 2019 - 2024. All rights reserved.