【问题标题】:KeyError: 'cross' when trying to do cartesian product with merge()KeyError:尝试使用 merge() 进行笛卡尔积时出现“交叉”
【发布时间】:2022-01-09 10:23:15
【问题描述】:

我有这行代码:

all_task_food_rescuer_combinations = task_data.merge(food_rescuer_data, how='cross')

它给了我这个错误信息:

KeyError: 'cross'

我没有任何名为“cross”的列。有谁知道是什么导致了这个错误?

更新:我用这些行交换了那行代码:

task_data['key'] = 1
food_rescuer_data['key'] = 1
all_task_food_rescuer_combinations = pd.merge(task_data, food_rescuer_data, on ='key').drop("key", 1)

我现在没有错误,但我仍然很好奇为什么我的第一种方法不起作用。那行代码直接来自文档。

【问题讨论】:

标签: python pandas cartesian-product


【解决方案1】:

您将'cross' 传递给how=,但它是New in version 1.2.0,因此请考虑将您的熊猫更新到较新的版本。

否则,您可以创建一个人工列,以便每一行在两个数据框中都具有相同的值:

left = task_data.assign(key=1)
right = food_rescuer_data(key=1)
left.merge(right, on='key').drop('key', 1)

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 2015-10-16
    • 1970-01-01
    • 2014-12-06
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 2018-02-03
    相关资源
    最近更新 更多