使用多列的列表理解

tee*_*you 2 python pandas

我有一个 Pandas 数据框,其中有一列用于实际值和预测值。我想使用列表理解创建一个新列,当实际值 = 预测时 = 1,否则为 0。我知道如何使用 np.where 做到这一点,但我很想知道如何使用列表理解来做到这一点。

这使用np.where

combined['correct'] = np.where(combined.actual==combined.predicted, 1, 0)
Run Code Online (Sandbox Code Playgroud)

谢谢!

Sco*_*ton 5

你不需要 np.where 也不需要列表理解:

你可以使用这个:

combined['correct'] = (combined.actual == combined.predict).mul(1)
Run Code Online (Sandbox Code Playgroud)

或者

combined['correct'] = (combined.actual == combined.predict).astype(int)
Run Code Online (Sandbox Code Playgroud)

  • @ElisByberi,`[int(x[0]==x[1]) for x in combine[['actual','predict']].values]`,但它可能很慢 (3认同)