在这里,我尝试查询数据框df中具有布尔值“是”或“否”的列,以便根据满足条件的行中的概率分布执行随机字母分配的某些功能。
if (df['some_bool'] == 'Yes'):
df['score'] = np.random.choice(['A', 'B', 'C'], len(df), p=[0.3, 0.2, 0.5])
写此代码的正确方法是什么,因为我收到上述错误:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
谢谢!
答案 0 :(得分:1)
尝试以下方法:
df['score'] = np.where(df['some_bool'] == 'Yes',
np.random.choice(['A', 'B', 'C'], len(df), p=[0.3, 0.2, 0.5]), '')