用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。