Pandas 比较列中不同值的两个数据帧
我有两个dataframe,请告诉我如何通过运算符名称比较它们,如果匹配,则添加值到第一个数据帧的数量和时间Pandas 比较列中不同值的两个数据帧,pandas,dataframe,Pandas,Dataframe,我有两个dataframe,请告诉我如何通过运算符名称比较它们,如果匹配,则添加值到第一个数据帧的数量和时间 In [2]: df1 In [3]: df2 Out[2]: Out[3]: Name count time Name count time 0 B
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
使用
设置索引
并将它们相加。最后,返回更新
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
注意:我假设
df1
和df2
中的time
列的日期/时间格式已经正确。如果它们是字符串格式,则在运行上述命令之前,需要对其进行转换,如下所示:
df1.time = pd.to_timedelta(df1.time)
df2.time = pd.to_timedelta(df2.time)
看看您可以添加两个数据帧,其中包含一些记录和预期输出吗?@Danila Ganchar对吗?是的,但我迟到了((您是否尝试了
AndyL.
解决方案?是的,谢谢您的帮助