dask_expr._collection.DataFrame.align
dask_expr._collection.DataFrame.align¶
- DataFrame.align(other, join='outer', axis=None, fill_value=None)¶
使用指定的连接方法将两个对象沿其轴对齐。
此文档字符串是从 pandas.core.frame.DataFrame.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