我有一个从csv文件创建的dask数据框,而len(daskdf)
返回18000但是当我ddSample = daskdf.sample(2000)
时出现错误
ValueError: Cannot take a larger sample than population when 'replace=False'
如果数据框大于样本数量,我可以在没有替换的情况下进行采样吗?
答案 0 :(得分:2)
示例方法仅支持frac=
关键字参数。请参阅API documentation
您获得的错误来自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'
正如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