Вы можете использовать функцию sample
с replace=True
:
df = df.sample(n=len(df) * 10, replace=True)
Или, для выборки только столбец площади, используйте
area = df.area.sample(n=len(df) * 10, replace=True)
Другой вариант будет включать np.random.choice
и будет выглядеть примерно так:
df = df.iloc[np.random.choice(len(df), len(df) * 10)]
Идея состоит в том, чтобы генерировать случайные индексы из 0- len(df)-1
. Первый аргумент определяет верхнюю границу, а второй (len(df) * 10
) указывает количество генерируемых индексов. Затем мы используем сгенерированные индексы для индексации в df
.
Если вы просто хотите получить area
, этого достаточно.
area = df.iloc[np.random.choice(len(df), len(df) * 10), df.columns.get_loc('area')]
Index.get_loc
преобразует метку "area" в позицию для iloc
.
df = pd.DataFrame({'A': list('aab'), 'B': list('123')})
df
A B
0 a 1
1 a 2
2 b 3
# Sample 3 times the original size
df.sample(n=len(df) * 3, replace=True)
A B
2 b 3
1 a 2
1 a 2
2 b 3
1 a 2
0 a 1
0 a 1
2 b 3
2 b 3
df.iloc[np.random.choice(len(df), len(df) * 3)]
A B
0 a 1
1 a 2
1 a 2
0 a 1
2 b 3
0 a 1
0 a 1
0 a 1
2 b 3