首页 > 解决方案 > 关于熊猫 .sample()

问题描述

我有一个数据框。即“df”,它有 10,000 行和 4 列(一列的值为“是/否”,仅命名为“已购买”,4,000 是和 6,000 否)

如果我写这段代码:

sample = df.sample(df.shape[0], replace = True)

然后我假设它会以无序的方式返回给我整个数据框。所以我使用了 .shape() ,结果发现样本与 df 的记录数相同。(10,000)

然后我用

sample.query('purchased == "Yes"').info()

现在......这次的结果让我很困惑......每次我运行它时, info() 给出的记录数......(2,333; 3000; 1540;.....)

这是为什么?如果样本只是整个 df,那么 .info() 不应该每次都相同吗?(4,000)

标签: pandas

解决方案


正如您在 pandas 文档中看到的那样,如果将 replace 参数设置为 True,它可以多次添加同一行,因此“样本”变量可能包含与原始数据集不同的数据集,其中购买值等于“是的”

参考:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html


推荐阅读