我有 2 个类似的数据框(df1
和 df2
),具有列 id、date、count。
我想连接这 2 个 df,如果 {id,date}
重叠,我想优先考虑 df2 中的行。
例如:
df1 的记录为:id1, 2018/02/03, 45
df2 有记录:id1, 2018/02/03, 65
当我合并/连接时,我只需要 df2 中的记录,即 {id1, 2018/02/03, 65
}。
除了这个重复的解析逻辑之外,我还需要 df 中的所有其他行。我怎样才能在Python中实现这一点?
最佳答案
您可以使用 drop_duplicates
功能的可选参数来实现此目的。
作为一个玩具示例,考虑框架:
df1 = pd.DataFrame({"id" : [1,2,3,4], "time" : [25, 35, 45, 15]})
df2 = pd.DataFrame({"id" : [4,5,2,9], "time" : [19, 14, 11, 12]})
然后,您需要做的就是连接 df1
和 df2
,并按 id
删除重复项并保留 last
以确保信息不来自 df2
。
df_concatenated = pd.concat([df1, df2]).drop_duplicates(subset="id", keep="last")
df_concatenated
> id time
1 25
3 45
4 19
5 14
2 11
9 12
关于python - 优先连接 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54762569/