如何使用np.where来显示满足条件的索引位置+N



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

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

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

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

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

尝试以下操作:

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

最新更新