dask.dataframe.map_overlap

dask.dataframe.map_overlap

dask.dataframe.map_overlap(func, df, before, after, *args, meta=_NoDefault.no_default, enforce_metadata=True, transform_divisions=True, align_dataframes=True, **kwargs)[源代码]

对每个分区应用一个函数,与相邻分区共享行。

参数
函数函数

应用于每个分区的函数。如果此函数接受特殊的 partition_info 关键字参数,它将接收到关于分区在数据框中相对位置的信息。

df: dd.DataFrame, dd.Series
args, kwargs

传递给函数的位置参数和关键字参数。位置参数是按分区计算的,而关键字参数在所有分区中共享。分区本身将是第一个位置参数,所有其他参数在其后传递。参数可以是 ScalarDelayed 或常规的 Python 对象。类似 DataFrame 的参数(包括 dask 和 pandas)将在应用函数之前重新分区以对齐(如果必要);请参阅 align_dataframes 以控制此行为。

强制元数据bool, 默认 True

是否在运行时强制要求 func 生成的 DataFrame 结构实际上与 meta 的结构匹配。这将重命名和重新排序每个分区的列,如果无法执行此操作,则会引发错误,但如果 dtypes 不匹配,则不会引发错误。

之前int, timedelta 或字符串 timedelta

从分区 i - 1 的末尾开始,添加到分区 i 的行。

之后int, timedelta 或字符串 timedelta

从分区 i + 1 的开头追加到分区 i 的行。

transform_divisionsbool, 默认 True

是否将函数应用于分区,并将这些转换后的分区应用于输出。

对齐数据框bool, 默认 True

是否重新分区 DataFrame 或 Series 类参数(包括 dask 和 pandas),以便在应用函数之前它们的分区对齐。这要求所有输入都有已知的分区。单分区输入将被拆分为多个分区。

如果为 False,所有输入必须具有相同数量的分区或单个分区。单分区输入将被广播到多分区输入的每个分区。

metapd.DataFrame, pd.Series, dict, iterable, tuple, optional

一个空的 pd.DataFramepd.Series,其数据类型和列名与输出匹配。此元数据对于 dask dataframe 中的许多算法正常工作是必要的。为了便于使用,还提供了一些替代输入。除了 DataFrame 之外,还可以提供 {name: dtype} 的字典或 (name, dtype) 的可迭代对象(注意名称的顺序应与列的顺序匹配)。除了系列之外,还可以使用 (name, dtype) 的元组。如果未提供,dask 将尝试推断元数据。这可能会导致意外结果,因此建议提供 meta。有关更多信息,请参阅 dask.dataframe.utils.make_meta

参见

dd.DataFrame.map_overlap