微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将DataFrame从Pandas转换为Dask

如何解决将DataFrame从Pandas转换为Dask

我遵循了本文档dask.dataframe.from_pandas,并有名为npartitionschunksize的可选参数。

所以我尝试写这样的东西:

import dask.dataframe as dd
import pandas as pd

df = pd.DataFrame(...)
df = dd.from_pandas(data=df)

该消息引发错误ValueError: Exactly one of npartitions and chunksize must be specified.

我想知道如何解决它,应该如何像dask调用npartitions时所做的那样计算DataFrame的chunksizedask.dataframe.read_csv

解决方法

在构建Dask数据框之前,您需要选择npartitions(分区数)或chunksize(每个分区的大小)。您需要确定要将熊猫数据帧分割成多少个并行数据帧,或者要使每个并行数据帧多大。理想情况下,您要根据系统拥有的内存以及可用的内核数量来决定。

,

可能是DASK中的一个小故障...因为错误本身表明我们需要指定npartitions(The number of partitions of the index to create)chunksize(The number of rows per index partition to use.) ..

看到此错误-

if (npartitions is None) == (chunksize is None):
   raise ValueError("Exactly one of npartitions and chunksize must be specified.")

以下是有关chunksizenpartitions在快速数据框中的最佳做法

ref 1ref 2

,

我认为您需要提供 npartitions 或 chunksize。 就我而言,我尝试了这两种情况并且效果很好。但是当我指定两个参数时,它给了我同样的错误。

因此,指定两者之一将清除错误。

import dask.dataframe as dd
import pandas as pd

df = pd.read_csv(filepath)
dd_df = dd.from_pandas(df,npartitions=100)

dd_df =dd.from_pandas(df,chunksize=100)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。