Образец панд с весами - PullRequest
       19

Образец панд с весами

0 голосов
/ 07 марта 2019

У меня есть df, и я хотел бы сделать из него выборку относительно распределения некоторой переменной. Допустим, df['type'].value_counts(normalize=True) возвращает:

0.3 A
0.5 B
0.2 C

Я бы хотел сделать что-то вроде sampledf = df.sample(weights=df['type'].value_counts()), чтобы sampledf ['type'].value_counts(normalize=True) вернуло почти такое же распределение. Как передать dict с частотой здесь?

1 Ответ

1 голос
/ 07 марта 2019

Weights должен принимать серию той же длины , что и исходный df, поэтому лучше всего добавить его в виде столбца:

df['freq'] = df.groupby('type')['type'].transform('count')
sampledf = df.sample(weights = df.freq)

Или без добавления столбца:

sampledf = df.sample(weights = df.groupby('type')['type'].transform('count'))
...