python - 优先连接 Pandas 数据框

标签 python pandas dataframe concatenation

我有 2 个类似的数据框(df1df2),具有列 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]})  

然后,您需要做的就是连接 df1df2,并按 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/

相关文章:

python - GCS 如何知道我正在使用哪个项目?

python - 如何将 pandas DataFrame 转换为省略 NaN 值的字典列表?

python - 如何更改 Pandas 中除第一列以外的所有列的列类型?

python - 如何在 IV2SLS 中使用线性模型按实体和年份进行聚类?

python - Pandas:为什么我的标题被插入到数据框的第一行?

r - 计算数据框行中的唯一元素并返回出现次数最多的元素

python - 如何让scala字符串拆分以匹配python

python 如何在我的方法调用中删除 None?

python - 日语分词器的模块导入问题

python - 在一张图中绘制两条曲线时遇到错误(python-pandas-matplotlib)