熊猫样品与重量

问题描述 投票:0回答:1

我有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?

pandas sample
1个回答
2
投票

Weights必须将series of the same length作为原始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'))
© www.soinside.com 2019 - 2024. All rights reserved.