【发布时间】:2019-08-11 18:45:45
【问题描述】:
我正在尝试在数据框中创建一个新列,用于标记用 1 驯化的动物。我正在使用 for 循环,但由于某种原因,该循环仅选取 @987654321 中的最后一项@ 列表。 dog、cat 和 gerbil 都应在 domesticated 列下分配 1。有人对此有解决方案或有更好的方法吗?
df = pd.DataFrame(
{'creature': ['dog', 'cat', 'gerbil', 'mouse', 'donkey']
})
pets = ['dog', 'cat', 'gerbil']
for pet in pets:
df['domesticated'] = np.where(df['creature']==pet, 1, 0)
df
【问题讨论】:
标签: python pandas numpy dataframe where