我有两个数据框,请告诉我如何用运算符名称比较它们,如果匹配,则将数量和时间的值添加到第一个数据框。
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
答案 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
注意:我假设time
和df1
中的df2
列已经采用正确的日期/时间格式。如果它们是字符串格式,则需要先转换它们,然后再运行以下命令:
df1.time = pd.to_timedelta(df1.time)
df2.time = pd.to_timedelta(df2.time)