gpt4 book ai didi

python - 如何从数据框中平均采样?

转载 作者:太空狗 更新时间:2023-10-30 00:59:32 28 4
gpt4 key购买 nike

假设我有一些观察,每个观察都有一个指示的类,从 1n。这些类中的每一个在数据集中不一定均等出现。

我怎样才能从数据框中平均抽样?现在我在做类似...

frames = []
classes = df.classes.unique()

for i in classes:
g = df[df.classes = i].sample(sample_size)
frames.append(g)

equally_sampled = pd.concat(frames)

pandas 有没有等采样的函数?

最佳答案

为了更优雅,你可以这样做:

df.groupby('classes').apply(lambda x: x.sample(sample_size))

扩展名:

您可以使 sample_size 成为组大小的函数,以等概率(或按比例)进行抽样:

nrows = len(df)
total_sample_size = 1e4
df.groupby('classes').\
apply(lambda x: x.sample(int((x.count()/nrows)*total_sample_size)))

它不会产生与 total_sample_size 相同的行数,但采样会比朴素方法更成比例。

关于python - 如何从数据框中平均采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40645524/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com