2016-10-17 5 views
0

У меня есть dataframe записей, который выглядит как:Создать образец dataframes с ограничениями

'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 различных фреймов данных?

Спасибо,

ответ

1

вы можете оставить дубликаты на основе вашей колонки от dataframe, а затем получить доступ к 10 элементов

df2 = df.drop_duplicates('Rec ID') 
df2.head(10) 

EDIT Если вы хотите выбрать случайным образом 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  

В этой елке сначала произвольно выбирайте строки, а затем удаляйте любые дубликаты, которые могут существовать.

+0

К сожалению, это не то, что мне нужно. Я не хочу бросать дубликаты. Я просто хочу создать 10 случайных комбинаций с каждой комбинацией, включая 10 записей, но без того же «Rec ID». –

+0

Обновлен ответ, это может помочь –

+0

Да! Это сработало. –

Смежные вопросы