當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。