gpt4 book ai didi

python - Pandas 等效于 SQL 非 equi JOIN

转载 作者:太空狗 更新时间:2023-10-30 01:11:25 31 4
gpt4 key购买 nike

所以我有 2 个数据框,我想合并在一起。

我正在合并 3 列,2 列很容易连接。

joined_df = pd.merge(df1, df2, how='left', on=['name', 'city'])

我希望它使用第三列,但这将是一个比较,如下所示:

joined_df = pd.merge(df1, df2, how='left',
on=['name', 'city', 'df1.year' >= 'df2.year_min'])

不确定这里的正确语法是什么。

如果是 SQL,对我来说会很容易。

SELECT * FROM df1
JOIN df2 on (df1.name = df2.name and df1.year = df2.year and df1.year > df2.year_min)

有什么帮助吗?

最佳答案

Pandas merge 只支持等值连接。您需要添加第二个步骤来过滤结果,如下所示:

joined_df = df1.merge(df2, how='left', on=['name', 'city'])
joined_df = joined_df[joined_df.year > joined_df.year_min]

关于python - Pandas 等效于 SQL 非 equi JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50573457/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com