我有一个销售数据框架,它有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合并在一起?我不得不做任何分数吗?最快的方法是什么?
提前致谢
答案 0 :(得分:1)
左边的数字索引不一定给出行数,它是数据帧的索引值,它可以包含除简单递增索引之外的其他值。
相反,我建议计算数据帧的长度
>>> len(df)