如何解决将DataFrame从Pandas转换为Dask
我遵循了本文档dask.dataframe.from_pandas,并有名为npartitions
和chunksize
的可选参数。
所以我尝试写这样的东西:
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的chunksize
或dask.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.")
以下是有关chunksize
和npartitions
在快速数据框中的最佳做法
我认为您需要提供 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 举报,一经查实,本站将立刻删除。