как получить случайный образец в мультииндексе pandas dataframe?

У меня есть dataframe, который индексируется в соответствии со следующими переменными: NAME – дата. Имя – это своего рода странный идентификатор, а дата – дата.

Данные очень большие, и я хотел бы проверить данные, которые у меня есть для нескольких случайных выборов NAME.

То есть,

  1. выберите случайное имя из возможных
  2. проверьте данные для этого ИМЯ, упорядоченные по времени.

Я не знаю, как это сделать. Я вижу, что мы можем использовать get_level_values , но у меня нет конкретного NAME, я просто хочу много раз называть случайные выборки.

Любая помощь ценится! Благодаря!

 import pandas as pd import numpy as np import random import string df = pd.DataFrame(data={'NAME': [''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(17)) for _ in range(10)], 'Date': pd.date_range('1/01/2016', periods=10), 'Whatever': np.random.randint(20, 50, 10)}, columns=['NAME', 'Date', 'Whatever']).set_index(['NAME', 'Date']) random_df = df[df.index.get_loc(np.random.choice(df.index.levels[0])) == True].sort_index(level=1) print(random_df) 

Возвращает df который выглядит так:

  Whatever NAME Date xg71zOEQVOEfCZ2ne 2016-01-01 35 qLCXuEerCXi6gmF1Y 2016-01-02 26 0vDe7x8TIb5FRv7hV 2016-01-03 40 Ddc6FGKBdtcLqT53O 2016-01-04 31 IYcrKG9pjt7mHH3qn 2016-01-05 44 lAWObNTC8yXPMY3v5 2016-01-06 49 k90QWdPc5qFSCFi1c 2016-01-07 22 BWQoHo8lUyEwK9Nuf 2016-01-08 42 Xt0bxUerTan0i1eGw 2016-01-09 22 tc7PYCzpyGmYLbnxu 2016-01-10 46 

random_df выглядит следующим образом:

  Whatever NAME Date IYcrKG9pjt7mHH3qn 2016-01-05 44 

Вы можете забыть свой мультииндекс и просто использовать isin с sample :

 import random df = df.reset_index() df[df['NAME'].isin(random.sample(list(df['NAME'].unique()),5))]