开发者社区> 问答> 正文

dask map_partitions返回Pandas数据框,而不是dask

我能找到的一切都表明daskmap_partitions应该返回dask dataframe对象。但是下面的代码片段和相应的输出(使用logzero)没有。(请注意-calc_delta返回浮点数的np.array)。

352         logger.debug(type(self.dd))
353         self.dd = self.dd.map_partitions(
354             lambda df: df.assign(
355                 duration1=lambda r: calc_delta(r['a'], r['b'])
356                 , duration2=lambda r: calc_delta(r['a'], r['c'])
357             )
358         ).compute(scheduler='processes')
359         logger.debug(type(self.dd))

[D 200316 19:19:28探索性:352] <class'dask.dataframe.core.DataFrame'>

[D 200316 19:19:43探索性:359] <class'pandas.core.frame.DataFrame'>

所有指南(有很多技巧)都建议这是向分区的dask数据框添加(逻辑)列的方法。但是,如果它实际上没有返回dask数据帧,则不会。

我想念什么?

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 18:54:06 615 0
1 条回答
写回答
取消 提交回答
  • 难道不是因为您正在调用“计算”​​吗?

    也许这样:

    self.dd.map_partitions(
                 lambda df: df.assign(
                     duration1=lambda r: calc_delta(r['a'], r['b'])
                     , duration2=lambda r: calc_delta(r['a'], r['c'])
                 )
             )
    

    实际上返回一个dask数据框。但是随后您调用了应该返回结果的compute,因此是pandas数据框,不是吗?

    回答来源:stackoverflow

    2020-03-23 18:54:13
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
中文:即学即用的Pandas入门与时间序列分析 立即下载
即学即用的Pandas入门与时间序列分析 立即下载
Adopting Dataframes and Parque 立即下载