如何向数据框添加随机类别?

时间:2020-07-10 16:18:57

标签: python pandas

我不知道这一点。我正在做一些测试,并尝试将随机类别添加到数据帧中进行测试,但是当我这样做时,它将为所有行添加该类别,而不是随机分配它。

这是我的代码:

import random
catergory = ['dog', 'cat', 'monkey']
df['animal'] = random.choice(catergory)
df['animal'].value_counts()

输出:

monkey
monkey    124705
Name: animal, dtype: int64

我了解它在做什么(生成一次随机调用并将其应用于整个DF),但是如何获取它以为每一行生成随机值。

1 个答案:

答案 0 :(得分:4)

使用np.random.choice和等于数据帧长度的size来生成给定大小的随机样本:

df['animal'] = np.random.choice(catergory, size=len(df))

示例:

np.random.seed(12345)

df = pd.DataFrame({'ColA': np.random.randint(1, 10, 10)})
catergory = ['dog', 'cat', 'monkey']

df['animal'] = np.random.choice(catergory, size=len(df))
df['animal'].value_counts()

结果:

monkey    5
cat       4
dog       1
Name: animal, dtype: int64