将表与熊猫中的索引列合并

Posted

技术标签:

【中文标题】将表与熊猫中的索引列合并【英文标题】:Merge tables with index column in pandas 【发布时间】:2021-07-31 23:23:16 【问题描述】:

我需要加入两个表:

我使用下一个代码:

    table = pd.merge(df1, df2, on=['user-reference_id'], how = 'right')

但它不起作用。我得到了重复的值。

我需要得到的结果是:

user-reference_id reference_date first_purchase month
159 2019-06-14 62.95 6
5009 2017-10-19 58.50 10
5026 2017-07-04 35.52 7
5032 2017-01-02 71.68 1

【问题讨论】:

user-reference_id 是否在您的一个或两个数据框中多次出现?如果是这样,那么您将获得记录的笛卡尔积。 我在两个数据框中都有 user-reference_id,我需要通过 user-reference_id 加入两个表。在最后一张表中,我有 reference_date 作为索引,当我加入两个表时,我得到了重复 【参考方案1】:

编辑:我误解了你的情况,所以我改变了答案。

要执行的合并类型错误。您需要更改 how 参数上的关键字参数。改成:

table = pd.merge(df1, df2, on=['user-reference_id'], how='outer')

有几个相关的链接,例如:

Difference(s) between merge() and concat() in pandas

Pandas/Python: How to concatenate two dataframes without duplicates?

https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html#

【讨论】:

@new_datascientist 我发现了一篇很棒的文章,它解释了 how 参数。我认为文档没有以可理解的方式解释它。见realpython.com/pandas-merge-join-and-concat

以上是关于将表与熊猫中的索引列合并的主要内容,如果未能解决你的问题,请参考以下文章

FULL OUTER JOIN 将表与 PostgreSQL 合并

根据熊猫中的索引范围组合列的行

熊猫中的列连接

合并Dataframe(熊猫)中的所有列-python3 [重复]

合并具有不同索引的熊猫系列(对齐一个索引)

如何将一列中的两列合并为日期与熊猫?