8

运行以下代码时,dask.dataframe.head() 的结果取决于 npartitions:

import dask.dataframe as dd
import pandas as pd
df = pd.DataFrame({'A': [1,2,3], 'B': [2,3,4]})
ddf = dd.from_pandas(df, npartitions = 3)
print(ddf.head())

这会产生以下结果:

   A  B
0  1  2

但是,当我将 npartitions 设置为 1 或 2 时,我得到了预期的结果:

   A  B
0  1  2
1  2  3
2  3  4

npartitions 低于数据帧的长度似乎很重要。这是故意的吗?

4

1 回答 1

4

根据文档dd.head()只检查第一个分区:

head(n=5, compute=True)

数据集的前 n 行

警告,这只检查第一个分区的前 n 行。

所以答案是肯定的,dd.head()受 dask 数据框中有多少个分区的影响。

然而,第一个分区中的行数预计会大于您在使用时通常想要显示的行数dd.head()——否则使用 dask 不应该得到回报。这可能不正确的唯一常见情况是n在过滤后获取第一行/元素时,如本问题所述。

于 2016-07-09T16:03:53.300 回答