用法:
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)
- 當axis=0(默認)時,逐行連接DataFrames:
相關用法
- Python dask.dataframe.multi.merge用法及代碼示例
- Python dask.dataframe.multi.merge_asof用法及代碼示例
- Python dask.dataframe.Series.apply用法及代碼示例
- Python dask.dataframe.to_records用法及代碼示例
- Python dask.dataframe.DataFrame.applymap用法及代碼示例
- Python dask.dataframe.Series.clip用法及代碼示例
- Python dask.dataframe.Series.prod用法及代碼示例
- Python dask.dataframe.Series.fillna用法及代碼示例
- Python dask.dataframe.DataFrame.sub用法及代碼示例
- Python dask.dataframe.compute用法及代碼示例
- Python dask.dataframe.DataFrame.mod用法及代碼示例
- Python dask.dataframe.Series.to_frame用法及代碼示例
- Python dask.dataframe.read_table用法及代碼示例
- Python dask.dataframe.read_hdf用法及代碼示例
- Python dask.dataframe.Series.sum用法及代碼示例
- Python dask.dataframe.Series.dropna用法及代碼示例
- Python dask.dataframe.DataFrame.cummin用法及代碼示例
- Python dask.dataframe.Series.gt用法及代碼示例
- Python dask.dataframe.Series.ge用法及代碼示例
- Python dask.dataframe.Series.repartition用法及代碼示例
注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask.dataframe.multi.concat。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。