1

在 pandas/Python 中,对于 question_id = 3 和 selected_reponse = 'Tertiary/University Postgraduate' 的每一行,我想为每个 user_id 填充一个名为“Tertiary”的新列,其中“是”或“否”。

不确定执行此操作的最佳方法。非常感激任何的帮助。

截屏

4

1 回答 1

2

我认为这里没有必要设置每个值user_id,所以使用numpy.where掩码:

mask = (df.question_id == 3) & (df.selected_reponse == 'Tertiary/University Postgraduate')

df['Tertiary'] = np.where(mask, 'Yes', 'No')

但是如果需要设置Yes为每组的所有行,如果匹配mask使用:

df['Tertiary'] = np.where(mask.groupby(df['user_id']).transform('any'), 'Yes', 'No')
于 2021-06-22T05:00:51.843 回答