当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.dataframe.multi.concat用法及代码示例


用法:

dask.dataframe.multi.concat(dfs, axis=0, join='outer', interleave_partitions=False, ignore_unknown_divisions=False, ignore_order=False, **kwargs)

沿行连接 DataFrame。

  • 当axis=0(默认)时,逐行连接DataFrames:
    • 如果所有分区都是已知且有序的,则连接保持分区的 DataFrame。当分区没有排序时,指定 interleave_partition=True 允许逐个连接分区。
    • 如果任何部门未知,则连接 DataFrames 将其部门重置为未知(无)
  • 当axis = 1时,按列连接DataFrame:
    • 如果所有部门都已知,则允许。
    • 如果任何除法未知,则会引发 ValueError。

参数

dfs列表

要连接的 dask.DataFrames 列表

axis{0, 1, ‘index’, ‘columns’},默认 0

要连接的轴

join{‘inner’, ‘outer’},默认 ‘outer’

如何处理其他轴上的索引

interleave_partitions布尔值,默认为 False

是否连接 DataFrames 忽略它的顺序。如果为 True,则每个分区都将逐个连接起来。

ignore_unknown_divisions布尔值,默认为 False

默认情况下,如果任何输入具有未知分区,则会发出警告。设置为 True 以禁用此警告。

ignore_order布尔值,默认为 False

在进行分类并集时是否忽略顺序。

注意

这与 pd.concat 的不同之处在于连接具有不同类别的分类。 Pandas 目前在连接之前将它们强制转换为对象。对于大型数组,强制对象非常昂贵,因此 dask 通过合并类别来保留分类。

例子

如果所有分区都已知且有序,则保留分区。

>>> import dask.dataframe as dd
>>> a                                               
dd.DataFrame<x, divisions=(1, 3, 5)>
>>> b                                               
dd.DataFrame<y, divisions=(6, 8, 10)>
>>> dd.concat([a, b])                               
dd.DataFrame<concat-..., divisions=(1, 3, 6, 8, 10)>

如果未对分区进行排序,则无法连接。

>>> a                                               
dd.DataFrame<x, divisions=(1, 3, 5)>
>>> b                                               
dd.DataFrame<y, divisions=(2, 3, 6)>
>>> dd.concat([a, b])                               
ValueError: All inputs have known divisions which cannot be concatenated
in order. Specify interleave_partitions=True to ignore order

指定interleave_partitions=True 忽略除法顺序。

>>> dd.concat([a, b], interleave_partitions=True)   
dd.DataFrame<concat-..., divisions=(1, 2, 3, 5, 6)>

如果任何除法未知,则结果除法将是未知的

>>> a                                               
dd.DataFrame<x, divisions=(None, None)>
>>> b                                               
dd.DataFrame<y, divisions=(1, 4, 10)>
>>> dd.concat([a, b])                               
dd.DataFrame<concat-..., divisions=(None, None, None, None)>

默认情况下,与未知部门连接会引发警告。设置 ignore_unknown_divisions=True 以禁用此函数:

>>> dd.concat([a, b], ignore_unknown_divisions=True)
dd.DataFrame<concat-..., divisions=(None, None, None, None)>

不同的分类是联合的

>>> dd.concat([
...     dd.from_pandas(pd.Series(['a', 'b'], dtype='category'), 1),
...     dd.from_pandas(pd.Series(['a', 'c'], dtype='category'), 1),
... ], interleave_partitions=True).dtype
CategoricalDtype(categories=['a', 'b', 'c'], ordered=False)

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.multi.concat。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。