为数据帧中列的每个单元格分配随机值

时间:2020-01-16 04:31:05

标签: python pandas numpy dataframe data-science

我正在尝试使用numpy.rand.randint函数对熊猫的DataFrame中的列进行迭代,以为每个单元分配一个唯一的随机值。

for i in csv_with_id.iteritems():
    csv_with_id['index'] = np.random.randint(1,10000)

结果如下: enter image description here

我的问题是索引列上的重复值。

我也尝试过使用iterrows()和普通csv_with_id进行循环

我可以对此寻求指导吗?

谢谢

1 个答案:

答案 0 :(得分:0)

使用numpy中的random.choice函数,您可以指定replace=False,这表示您不能拥有相同值的两倍。 此函数将为您提供可以分配给df.index

的整个向量

关于虚拟数据帧的示例

import numpy as np
import pandas as pd
df = pd.DataFrame({'col1': range(8000)})
# get number of rows df values between 0 and 9999 - all distinct
df.index = np.random.choice(range(10000),df.shape[0],replace=False)

您可以检查df.index中不同元素的数量是否是df中行的数量:

len(df.index.unique())
# 8000