2016-06-28 2 views
4

Я знаю, как случайным образом отбирать несколько строк из кадра данных pandas. Допустим, у меня был кадра данных DF, а затем, чтобы получить часть строки, я могу сделать:Случайная выборка кадра данных Pandas (обе строки и столбцы)

df_sample = df.sample(frac=0.007) 

Однако то, что мне нужно, это случайные строки выше, а также случайных столбцов из выше кадра данных.

Df в настоящее время 56Kx8.5k. Если я хочу сказать 500x1000, где и 500 и 1000 случайным образом отбираются, как это сделать?

Я думаю, что один подход будет делать что-то вроде

df.columns, чтобы получить список имен столбцов.

Затем выполните некоторую случайную выборку индексов этого списка столбцов и используйте эти случайные индексы для фильтрации оставшихся столбцов?

ответ

7

Просто позвоните sample дважды, с соответствующими параметрами осей:

df.sample(n=500).sample(n=1000, axis=1) 

Для первого, ось = 0 по умолчанию.

+0

прохладный. не знал этого. просто чтобы проверить, будет ли вызов дважды, убедитесь, что у нас есть те же строки (500), на которых мы получаем столбцы образцов? – Baktaawar

+0

Если я правильно понял ваш вопрос, 'df.sample (n = 500)' вернет dataframe из 500 строк и 8.5k столбцов. На этом кадре данных, вызывающем '.sample (n = 1000, axis = 1)', будет возвращен другой фрейм данных с 500 строками, которые были выбраны ранее, и 1000 столбцов. – ayhan

+0

прохладно имеет смысл – Baktaawar

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