如何将dask数据框的所有部分合并在一起

时间:2018-05-27 03:39:44

标签: python dataframe merge dask

我有一个销售数据框架,它有28M行,还有一些其他数据框架以及Product数据框架的示例。

当我第一次将pandas数据帧转换为Dask数据帧时:

  sales_dd = dd.from_pandas(Sales, npartitions=3) #28M rows
  product_dd = dd.from_pandas(Product, npartitions=3) #600 rows
转换Dask Dataframe后,我可以看到我的数据;

  sales_dd.tail()

             Date      ProductNo    Total_Sales
28499962    20160730       537        3.0
28499963    20170528       561        12.0
28499964    20160628       534        10.0
28499965    20170112       544        160.0
28499966    20170907       574        0.0

在我尝试合并这两个dask DataFrame之后:

productsales = dd.merge(sales_dd, product_dd, on='ProductNo', how='left')

然后我检查最后一个DataFrame;

productsales.tail()



               Date    ProductNo    Total_Sales   x     y     z  ....
9440495     20171202       579        5.0         .     .     .
9440496     20171017       581        2.0         .     .     .
9440497     20160906       519        9.0
9440498     20160628       544        10.0        .     .     .
9440499     20170907       574        0.0         .     .     .

正如我们所看到的,productales表只有900k行。

我的问题是如何将所有DataFrame合并在一起?我不得不做任何分数吗?最快的方法是什么?

提前致谢

1 个答案:

答案 0 :(得分:1)

左边的数字索引不一定给出行数,它是数据帧的索引值,它可以包含除简单递增索引之外的其他值。

相反,我建议计算数据帧的长度

>>> len(df)