从 len 18000 的 Dask 数据帧中采样 n= 2000 会生成错误 当“replace=False”时,无法获取比总体更大的样本

2024-04-29

我有一个从 csv 文件创建的 dask 数据框,len(daskdf)返回 18000 但当我ddSample = daskdf.sample(2000)我收到错误

ValueError: Cannot take a larger sample than population when 'replace=False'

如果数据帧大于样本大小,我可以在不替换的情况下进行采样吗?


示例方法仅支持frac=关键字参数。请参阅API文档 http://dask.readthedocs.io/en/latest/dataframe-api.html#dask.dataframe.DataFrame.sample

您收到的错误来自 Pandas,而不是 Dask。

In [1]: import pandas as pd
In [2]: df = pd.DataFrame({'x': [1]})
In [3]: df.sample(frac=2000, replace=False)
ValueError: Cannot take a larger sample than population when 'replace=False'

解决方案1

正如 Pandas 错误所示,考虑采样有更换

In [4]: df.sample(frac=2, replace=True)
Out[4]: 
   x
0  1
0  1

In [5]: import dask.dataframe as dd
In [6]: ddf = dd.from_pandas(df, npartitions=1)
In [7]: ddf.sample(frac=2, replace=True).compute()
Out[7]: 
   x
0  1
0  1

解决方案2

这可能会帮助某人..

我从某个地方发现了这个,但不记得在哪里了。

这将正确地显示结果,不会出现错误。 (这是针对 pandas 的,我不知道 dask)。

import pandas as pd

df = pd.DataFrame({'a': [1,2,3,4,5,6,7],
                   'b': [1,1,1,2,2,3,3]})

# this is fixed number, will be error when data in group is less than sample size
df.groupby('b').apply(pd.DataFrame.sample, n=1)

# this is flexible with min, no error, will return 3 or less than that
df.groupby(['b'], as_index=False, group_keys=False
          ).apply(
            lambda x: x.sample(min(3, len(x)))
        )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 len 18000 的 Dask 数据帧中采样 n= 2000 会生成错误 当“replace=False”时,无法获取比总体更大的样本 的相关文章

随机推荐

  • 如何让我的精灵向鼠标位置发射一个对象?

    对于一个学校项目 我需要通过实现一种向鼠标位置射击 Kunais Shurikens 的方式来完成下面的 pygame 程序 以便能够击中敌人精灵 import pygame import math import random from p
  • 重新排列关联数组的最优雅的方法是什么?

    假设你有一个关联数组 hash Fruit Apple hash Name Jeff hash Car Ford 并且您无法更改这些变量的创建顺序 因此 Car 总是在 Name 等之后添加到数组中 将 Car 添加 移动到关联数组的开头而
  • 基于 Pandas 中的管道分隔列创建多个新列

    我有一个 pandas 数据框 其中有一个管道分隔的列 其中包含任意数量的元素 称为 零件 这些管道串中的元素数量从 0 到超过 10 个不等 所有管道串中包含的唯一元素的数量并不比行数小很多 这使得我无法在创建新列 对于每一行 我想创建一
  • LINQ 将 Dictionary 转换为 Dictionary

    我今天心情低落 有谁知道一种快速而优雅的方法来转换字典 使键变成值 反之亦然 Example var originalDictionary new Dictionary
  • 按钮上的自定义 Paypal 字段

    当 PayPal 通知我付款时 我需要包含一个自定义字段 我正在尝试使用高级变量 但我没有找到使它们动态化的方法 假设我有一个字段 xyzzy 值为 plugh 我希望 PayPal 包含 form xyzzy plugh 及其发送到我的
  • 如何在 CALayer 中绘制径向渐变?

    I know CAGradientLayer目前不支持径向渐变 只能选择kCAGradientLayerAxial 我想要如下所示的东西 我环顾四周寻找这个问题 发现有一种方法可以解决这个问题 但我并不清楚这些解释 所以我想知道是否可以使用
  • Android 中的音频交叉淡入淡出

    我正在开发一个媒体播放器用于我的学习目的 我希望在媒体播放器应用程序中具有交叉淡入淡出功能 但我不知道从哪里开始 我尝试在互联网上搜索但没有运气 我使用的是安卓MediaPlayer所有媒体播放器相关操作的类 任何人都知道任何解决方法可以实
  • 使用 RSYNC,包含和排除如何组合?

    我想 rsync Volumes B 中的所有内容 除了缓存目录 我想全局排除它 另外 我不想同步任何其他 Volume 我有以下排除文件 Volumes B Cache Volumes 第一行和第三行似乎工作正常 除了 rsync 还拾取
  • 如何使用 DataTables jquery 插件按日期排序?

    我正在使用 datatables jquery 插件并希望按日期排序 我知道他们有一个插件 但我找不到从哪里实际下载它 http datatables net plug ins sorting http datatables net plu
  • NativeActivity未完成

    我从 JavaActivity 调用 NativeActivity 我的 NativeActivity 的入口点是 android main struct android app state 最后 我打电话给 ANativeActivity
  • 处理表单的最佳实践

    我想知道处理表单处理的最佳实践是什么 就我而言 我做了类似的事情 if the user hasn t submited the form 显示表格 else if there are form errors 显示错误 再次显示表格 els
  • 连接表时,rails 在访问连接表中的字段时无论如何都会发出额外的请求

    我有公司表和城市表 公司属于城市 我的数据库架构的一部分是 create table companies force true do t t string title default null false t string address
  • 用顶点之间的渐变填充 matplotlib 多边形

    我正在使用 matplotlib 的 Poly3DCollection 绘制多边形 三角形 的集合 三角形位于具有与其关联的颜色的顶点之间 我目前正在用通过平均三个顶点的颜色确定的纯色填充每个三角形 绘制三角形以形成 3D 表面网格 I w
  • 在snakemake规则中使用pyenv

    我正在使用 Snakemake 来实现一个漫长而复杂的管道 其中涉及一些外部编写的 python2 脚本 当我尝试使用 pyenv 指定 python2 时 pyenv shell命令失败 同时pyenv global and pyenv
  • 如何编译Python 1.0

    出于某种反常的原因 我想尝试Python 1 0 我将如何编译它 或者更确切地说 可以使用当前编译器干净地编译的早期版本是什么 我使用的是 Mac OS X 10 5 不过因为这只是出于好奇 关于语言如何变化 所以在 Linux 虚拟机中编
  • Angular 无法注册 ServiceWorker:获取脚本时收到错误的 HTTP 响应代码 (404)

    我正在使用 Firebase 在 Angular PWA 中执行推送通知 并且我正在点击链接来执行此操作 https medium com tariqueejaz progressive web app push notifications
  • 如何检查nodejs中的服务器和端口是否可用?

    我有一个项目是用 Nodejs 编写的 我需要知道如何检查带有端口的 IP 是否可以连接 前任 检查 example1 com 443 gt true 检查 example1 com 8080 gt false Thanks 了解服务器 端
  • Bash 函数中的返回值

    我正在使用 bash 脚本 我想执行一个函数来打印返回值 function fun1 return 34 function fun2 local res fun1 echo res 当我执行时fun2 它不打印 34 为什么会这样呢 虽然
  • 绝对定位但调整父级的大小

    我正在尝试编写一个 div 中包含 2 个 div 的 html 代码 有一个没有宽度和高度的父div 宽度是浏览器宽度 没有指定高度 我想要在这个父 div 内有 2 个 div 第一个需要具有宽度或 250px 第二个需要具有屏幕宽度的
  • 从 len 18000 的 Dask 数据帧中采样 n= 2000 会生成错误 当“replace=False”时,无法获取比总体更大的样本

    我有一个从 csv 文件创建的 dask 数据框 len daskdf 返回 18000 但当我ddSample daskdf sample 2000 我收到错误 ValueError Cannot take a larger sample