dask.dataframe.Series.align

dask.dataframe.Series.align

Series.align(other, join='outer', axis=None, fill_value=None)[源代码]

使用指定的连接方法将两个对象沿其轴对齐。

此文档字符串是从 pandas.core.series.Series.align 复制过来的。

Dask 版本可能存在一些不一致性。

连接方法是为每个轴索引指定的。

参数
其他DataFrame 或 Series
加入{‘outer’, ‘inner’, ‘left’, ‘right’}, 默认 ‘outer’

要执行的对齐类型。

  • left: 仅使用左帧中的键,保持键的顺序。

  • right: 仅使用右帧中的键,保持键的顺序。

  • 外部:使用两个数据框的键的并集,按字典顺序排序键。

  • inner: 使用两个帧中键的交集,保留左侧键的顺序。

其他对象的允许轴,默认为 None

对齐索引 (0)、列 (1) 或两者 (None)。

级别int 或级别名称,默认 None (在 Dask 中不支持)

在某一级别上进行广播,匹配传递的 MultiIndex 级别的索引值。

复制bool, 默认 True (Dask 不支持)

总是返回新对象。如果 copy=False 且不需要重新索引,则返回原始对象。

备注

copy 关键字将在 pandas 3.0 中改变行为。写时复制 将被默认启用,这意味着所有带有 copy 关键字的方法将使用延迟复制机制来推迟复制并忽略 copy 关键字。copy 关键字将在未来版本的 pandas 中被移除。

您已经可以通过启用写时复制 pd.options.mode.copy_on_write = True 来获得未来的行为和改进。

fill_value标量,默认值为 np.nan

用于缺失值的值。默认为 NaN,但可以是任何“兼容”的值。

方法{‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, 默认 None (Dask 不支持)

用于填充重新索引系列中空洞的方法:

  • pad / ffill: 将最后一个有效观测值向前传播到下一个有效观测值。

  • backfill / bfill: 使用下一个有效观测值来填补空白。

2.1 版后已移除.

限制int, 默认 None (在 Dask 中不支持)

如果指定了方法,这是要向前/向后填充的连续 NaN 值的最大数量。换句话说,如果存在超过此数量的连续 NaN 的间隙,它将仅部分填充。如果未指定方法,这是沿整个轴填充 NaN 的最大条目数。如果值不为 None,则必须大于 0。

2.1 版后已移除.

fill_axis{0 或 ‘index’} 用于 Series,{0 或 ‘index’, 1 或 ‘columns’} 用于 DataFrame,默认 0 (Dask 中不支持)

填充轴、方法和限制。

2.1 版后已移除.

broadcast_axis{0 或 ‘index’} 用于 Series,{0 或 ‘index’, 1 或 ‘columns’} 用于 DataFrame,默认 None (Dask 中不支持)

如果对齐两个不同维度的对象,则沿此轴广播值。

2.1 版后已移除.

返回
元组 (Series/DataFrame, 其他类型)

对齐的对象。

示例

>>> df = pd.DataFrame(  
...     [[1, 2, 3, 4], [6, 7, 8, 9]], columns=["D", "B", "E", "A"], index=[1, 2]
... )
>>> other = pd.DataFrame(  
...     [[10, 20, 30, 40], [60, 70, 80, 90], [600, 700, 800, 900]],
...     columns=["A", "B", "C", "D"],
...     index=[2, 3, 4],
... )
>>> df  
   D  B  E  A
1  1  2  3  4
2  6  7  8  9
>>> other  
    A    B    C    D
2   10   20   30   40
3   60   70   80   90
4  600  700  800  900

按列对齐:

>>> left, right = df.align(other, join="outer", axis=1)  
>>> left  
   A  B   C  D  E
1  4  2 NaN  1  3
2  9  7 NaN  6  8
>>> right  
    A    B    C    D   E
2   10   20   30   40 NaN
3   60   70   80   90 NaN
4  600  700  800  900 NaN

我们也可以在索引上对齐:

>>> left, right = df.align(other, join="outer", axis=0)  
>>> left  
    D    B    E    A
1  1.0  2.0  3.0  4.0
2  6.0  7.0  8.0  9.0
3  NaN  NaN  NaN  NaN
4  NaN  NaN  NaN  NaN
>>> right  
    A      B      C      D
1    NaN    NaN    NaN    NaN
2   10.0   20.0   30.0   40.0
3   60.0   70.0   80.0   90.0
4  600.0  700.0  800.0  900.0

最后,默认的 axis=None 将对齐索引和列:

>>> left, right = df.align(other, join="outer", axis=None)  
>>> left  
     A    B   C    D    E
1  4.0  2.0 NaN  1.0  3.0
2  9.0  7.0 NaN  6.0  8.0
3  NaN  NaN NaN  NaN  NaN
4  NaN  NaN NaN  NaN  NaN
>>> right  
       A      B      C      D   E
1    NaN    NaN    NaN    NaN NaN
2   10.0   20.0   30.0   40.0 NaN
3   60.0   70.0   80.0   90.0 NaN
4  600.0  700.0  800.0  900.0 NaN