dask.dataframe.from_pandas

dask.dataframe.from_pandas

dask.dataframe.from_pandas(data: pandas.core.frame.DataFrame, npartitions: int | None = None, chunksize: int | None = None, sort: bool = True, name: str | None = None) dask.dataframe.core.DataFrame[源代码]
dask.dataframe.from_pandas(data: pandas.core.series.Series, npartitions: int | None = None, chunksize: int | None = None, sort: bool = True, name: str | None = None) dask.dataframe.core.Series

从 Pandas DataFrame 构建 Dask DataFrame

这将一个内存中的 Pandas 数据框分割成多个部分,并从这些部分构建一个 dask.dataframe,Dask.dataframe 可以在这些部分上并行操作。默认情况下,输入数据框将按索引排序,以生成干净分割的分区(具有已知的分区)。为了保持输入顺序,请确保输入索引是单调递增的。sort=False 选项也将避免重新排序,但不会产生已知的分区。

需要注意的是,尽管有并行处理,Dask.dataframe 并不总是比 Pandas 更快。我们建议您尽可能长时间地使用 Pandas,然后再切换到 Dask.dataframe。

参数
数据pandas.DataFrame 或 pandas.Series

用于构造 Dask DataFrame/Series 的 DataFrame/Series

npartitionsint, 可选

要创建的索引分区数量。请注意,如果 data.index 中存在重复值或元素不足,输出可能会有比请求更少的分区。

chunksizeint, 可选

每个索引分区使用的所需行数。请注意,根据数据框的大小和索引,实际分区大小可能会有所不同。

sort: bool

首先按索引对输入进行排序,以获得干净分割的分区(具有已知的分割)。如果为 False,则不会对输入进行排序,所有分割都将设置为 None。默认为 True。

名称: 字符串, 可选

数据框的可选键名。默认为对输入进行哈希处理。

返回
dask.DataFrame 或 dask.Series

一个沿着索引分区的dask DataFrame/Series

Raises
类型错误

如果传入的不是 pandas.DataFramepandas.Series

参见

from_array

从具有记录数据类型的数组构造一个 dask.DataFrame

read_csv

从 CSV 文件构建一个 dask.DataFrame

示例

>>> from dask.dataframe import from_pandas
>>> df = pd.DataFrame(dict(a=list('aabbcc'), b=list(range(6))),
...                   index=pd.date_range(start='20100101', periods=6))
>>> ddf = from_pandas(df, npartitions=3)
>>> ddf.divisions  
(Timestamp('2010-01-01 00:00:00', freq='D'),
 Timestamp('2010-01-03 00:00:00', freq='D'),
 Timestamp('2010-01-05 00:00:00', freq='D'),
 Timestamp('2010-01-06 00:00:00', freq='D'))
>>> ddf = from_pandas(df.a, npartitions=3)  # Works with Series too!
>>> ddf.divisions  
(Timestamp('2010-01-01 00:00:00', freq='D'),
 Timestamp('2010-01-03 00:00:00', freq='D'),
 Timestamp('2010-01-05 00:00:00', freq='D'),
 Timestamp('2010-01-06 00:00:00', freq='D'))