如何在sql查询中进行采样以获取带有大熊猫的数据框

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

注意我的问题在这里有点不同:

我正在处理包含大量数据(10M +)的数据集上的熊猫:

q = "SELECT COUNT(*) as total FROM `<public table>`"
df = pd.read_gbq(q, project_id=project, dialect='standard')

我知道我可以通过frac选项使用pandas功能>

df_sample = df.sample(frac=0.01)

但是,我不想生成具有该大小的原始df。我想知道用已采样的数据生成数据框的最佳实践是什么。

我已经阅读了一些sql帖子,显示示例数据是从切片生成的,在我的情况下绝对不接受。样本数据需要尽可能均匀地分布。

谁能给我更多的光?

非常感谢。

UPDATE:

下面是显示数据外观的表:

enter image description here

信誉是我正在研究的领域。您会看到多数记录的声誉很小。

我不想使用包含所有记录的数据框,我希望采样的数据也看起来像未采样的数据,例如相似的直方图,这就是我所说的“均匀”。

我希望这可以澄清一下。

注意我的问题在这里有点不同:我正在对具有大量数据(10M +)的数据集使用熊猫:q =“ SELECT COUNT(*)as from FROM <

可以使用以下语法执行简单的随机样本:

select * from mydata where rand()>0.9

这将使表中的每一行都有10%的机会被选中。它不保证一定的样本量,也不保证每个bin都代表(这需要分层的样本)。这是这种方法的小提琴]

http://sqlfiddle.com/#!9/21d1ee/2

平均而言,随机抽样将提供与基础数据相同的分布,因此可以满足您的要求。但是,如果您要“强制”样本具有更大的代表性或将样本强制为一定大小,我们需要研究更高级的东西。

sql pandas dataframe sample
1个回答
0
投票
可以使用以下语法执行简单的随机样本:
© www.soinside.com 2019 - 2024. All rights reserved.