我的记录数据框如下:
'Location' 'Rec ID' 'Duration' 'Rec-X'
0 Houston 126 17 [0.2, 0.34, 0.45, ..., 0.28]
1 Chicago 126 19.3 [0.12, 0.3, 0.41, ..., 0.39]
2 Boston 348 17.3 [0.12, 0.3, 0.41, ..., 0.39]
3 Chicago 138 12.3 [0.12, 0.3, 0.41, ..., 0.39]
4 New York 238 11.3 [0.12, 0.3, 0.41, ..., 0.39]
...
500 Chicago 126 19.3 [0.12, 0.3, 0.41, ..., 0.39]
作为遗传算法过程的一部分,我想初始化一组人口(10)的记录。我希望我的每个子集都包含10条记录,但是我希望两次不包含相同的“Rec-ID”。
有关如何生成这10个不同数据帧的任何想法吗?
谢谢,
答案 0 :(得分:1)
您可以根据数据框中的列删除重复项,然后访问10个元素
df2 = df.drop_duplicates('Rec ID')
df2.head(10)
修改强> 如果要随机选择10个唯一元素 那么像这样的东西会起作用
def selectRandomUnique(df) :
d2 = df.sample(n=3).drop_duplicates('ID')
while len(d2) != 3 :
d2 = df.sample(n=3).drop_duplicates('ID')
return d2
首先,您随机选择行,然后删除可能存在的任何重复项。