熊猫合并添加列
问题描述:
我有两个数据帧df1
和df2
。 df1
包含列subject_id
和time
和df2
包含列subject_id
和final_time
。我想要做的是每subject_id
在df1
添加一列final_time
从df2
但只有subject_ids
的包含在df1
。我试过df1.merge(df2,how='left')
,但仍然得到subject_id
的df2
这个长度更长,并且包含许多重复的'subject_id`。熊猫合并添加列
的例子就是我在寻找:
df1
subject_id time
0 15 12:00
1 20 12:05
2 21 12:10
3 25 12:00
df2
subject_id final_time
0 15 12:30
1 15 12:30
2 15 12:30
3 20 12:45
4 20 12:45
5 21 12:50
6 25 1:00
7 25 1:00
8 25 1:00
什么我找
subject_id time final_time
0 15 12:00 12:30
1 20 12:05 12:45
2 21 12:10 12:50
3 25 12:00 1:00
答
您应该使用
df1.merge(df2, on='subject_id')
为how
默认是内在的,这将只匹配两列中的条目。 on
告诉合并匹配只在你感兴趣的专栏
答
适合我。没有结果不在df1
df1 = pd.DataFrame(dict(subject_id=[1, 2, 3], time=[9, 8, 7]))
df2 = pd.DataFrame(dict(subject_id=[2, 2, 4], final_time=[6, 5, 4]))
df1.merge(df2, 'left')
subject_id time final_time
0 1 9 NaN
1 2 8 6.0
2 2 8 5.0
3 3 7 NaN
可以显示示例代码,以及预期的输出是什么? – SeeDerekEngineer