Python 使用多列的列表理解
我有一个熊猫数据框,其中有一列表示实际值和预测值。我想使用list comprehension创建一个新列,当actuals=predicted时为1,否则为0。我知道如何使用np.where来实现这一点,但我很好奇如何使用列表理解来实现这一点 这可以使用Python 使用多列的列表理解,python,pandas,Python,Pandas,我有一个熊猫数据框,其中有一列表示实际值和预测值。我想使用list comprehension创建一个新列,当actuals=predicted时为1,否则为0。我知道如何使用np.where来实现这一点,但我很好奇如何使用列表理解来实现这一点 这可以使用np.其中: combined['correct'] = np.where(combined.actual==combined.predicted, 1, 0) 谢谢 您不需要np.where或list理解: 您可以使用以下选项: combi
np.其中
:
combined['correct'] = np.where(combined.actual==combined.predicted, 1, 0)
谢谢 您不需要np.where或list理解: 您可以使用以下选项:
combined['correct'] = (combined.actual == combined.predict).mul(1)
或
第二个更快,我想(+1);)OP已经知道了!“我知道如何使用np.where来实现这一点,但我很好奇如何使用列表理解来实现。”这与需求无关。这是关于可能性的。OP能不能做到?@ElisByberi我不知道如何在这里使用列表理解。在这种情况下,这没有什么意义。您只需允许Pandas进行内部数据对齐,并检查两个值是否相等,然后将布尔值转换为整数。@ElisByberi,
[int(x[0]==x[1]),用于组合[['actual','predict']]]中的x。values]
,但它可能很漂亮slow@MaxUEw-1是一个非常可怕的建议。:)只是开玩笑。
combined['correct'] = (combined.actual == combined.predict).astype(int)