我有一个数据框架,当只满足特定条件时,我试图在其中创建一个新列。
例如,我有一行代码,我想更改它以显示不同的输出。
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)
# ^^^^^^^^^^^^^^^^^^^^