【发布时间】:2021-06-22 04:28:18
【问题描述】:
在 pandas/Python 中,对于 question_id = 3 和 selected_reponse = 'Tertiary/University Postgraduate' 的每一行,我想为每个 user_id 填充一个名为“Tertiary”的新列,其中“是”或“否”。
不确定执行此操作的最佳方法。任何帮助将不胜感激。
【问题讨论】:
标签: python pandas calculated-columns
在 pandas/Python 中,对于 question_id = 3 和 selected_reponse = 'Tertiary/University Postgraduate' 的每一行,我想为每个 user_id 填充一个名为“Tertiary”的新列,其中“是”或“否”。
不确定执行此操作的最佳方法。任何帮助将不胜感激。
【问题讨论】:
标签: python pandas calculated-columns
我认为这里没有必要为每个 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')
【讨论】: