我正在尝试使用numpy.rand.randint
函数对熊猫的DataFrame中的列进行迭代,以为每个单元分配一个唯一的随机值。
for i in csv_with_id.iteritems():
csv_with_id['index'] = np.random.randint(1,10000)
我的问题是索引列上的重复值。
我也尝试过使用iterrows()
和普通csv_with_id
进行循环
我可以对此寻求指导吗?
谢谢
答案 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