【问题标题】:How to use np.where to display the index position + N where a condidtion is met如何使用np.where显示满足条件的索引位置+N
【发布时间】:2021-12-29 20:16:10
【问题描述】:

我有一个数据框,我试图在其中仅满足特定条件时创建一个新列。

例如,我想更改这行代码以显示不同的输出。

data['new_filtered'] = np.where(((data.movie == data.genre) & (data.length > movie_average)),1,0)

我希望它显示 data.movie 但 + 5 个索引位置,而不是返回 1 和 0 来表示 True 和 False。

例如,如果在第 5 行满足此条件,我希望返回为第 10 行的电影。 我过去只使用一个 for 循环并将返回值附加到列表并将其添加到数据框中。我只是想看看 np.where() 是否可以做到这一点。

【问题讨论】:

  • 请给我们一些可重现的数据集。

标签: python pandas numpy loops


【解决方案1】:

尝试类似:

mask = ((data.movie == data.genre) & (data.length > movie_average))
data['new_filtered'] = np.where(mask, data.movie.shift(-5), 0)
#                                     ^^^^^^^^^^^^^^^^^^^^

【讨论】:

  • 非常感谢。我不知道你可以创建一个面具。它使它看起来更干净。我也不知道在班次中使用负数,但这是有道理的!
猜你喜欢
  • 1970-01-01
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
相关资源
最近更新 更多