首先,我想从三个数据帧(每个 150 行)中随机采样并连接结果。其次,我想尽可能多地重复这个过程。
对于第 1 部分,我使用以下函数:
def get_sample(n_A, n_B, n_C):
A = df_A.sample(n = n_A, replace=False)
B = df_B.sample(n = n_B, replace=False)
C = df_C.sample(n = n_C, replace=False)
return pd.concat([A, B, C])
对于第 2 部分,我使用以下行:
results = [get_sample(5,5,3) for i in range(n)]
目前与n = 50.000
在我的 MacBook 上,分析大约需要 1 分 40 秒。欢迎就如何提高此过程的速度提出任何建议!
PM 三个数据帧(df_A、df_B、df_C)仅在一个分类特征上有所不同。挑战在于我想要每个类别的特定数量的样本。
使用 numpy ndarrays 应该更快,因为 pandas 本身是基于 numpy 构建的。采样可以通过以下方式完成:numpy.random.choice
,如所解释的here https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.choice.html。这应该相当于pd.sample
。然后你可以从 numpy 切换回 pandas。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)