pandas.DataFrame.align # 数据框。对齐(其他,加入= '外部',轴=无,级别=无,复制=无,填充值=无,方法= _NoDefault.no_default,限制= _NoDefault.no_default,填充轴= _NoDefault.no_default,广播轴= _NoDefault.no_default)[来源]# 使用指定的连接方法将两个对象在其轴上对齐。 为每个轴索引指定连接方法。 参数: 其他数据框或系列 join {'outer', 'inner', 'left', 'right'}, 默认 'outer'要执行的对齐类型。 左:仅使用左帧中的关键点,保留关键点顺序。 右:仅使用右帧中的关键点,保留关键点顺序。 外部:使用两个帧中的键的并集,按字典顺序对键进行排序。 内部:使用两个帧中关键点的交集,保留左侧关键点的顺序。 axis允许其他对象的轴,默认 None在索引 (0)、列 (1) 或两者上对齐(无)。 level int 或级别名称,默认 None跨级别广播,匹配传递的多索引级别上的索引值。 复制布尔值,默认 True总是返回新对象。如果 copy=False 并且不需要重新索引,则返回原始对象。 笔记 copy关键字将改变 pandas 3.0 中的行为 。默认情况下会启用Copy-on-Write ,这意味着所有带有 copy关键字的方法都将使用惰性复制机制来推迟复制并忽略copy关键字。 copy关键字将在 pandas 的未来版本中删除。 您已经可以通过启用写入时复制来获得未来的行为和改进pd.options.mode.copy_on_write = True fill_value标量,默认 np.nan用于缺失值的值。默认为 NaN,但可以是任何“兼容”值。 方法{'backfill', 'bfill', 'pad', 'ffill', None}, 默认 None用于填充重新索引系列中的孔的方法: pad / fill:将最后一个有效观察向前传播到下一个有效观察。 backfill / bfill:使用下一个有效观察来填补空白。 自 2.1 版本起已弃用。 limit int,默认无如果指定了 method,则这是要向前/向后填充的连续 NaN 值的最大数量。换句话说,如果存在连续 NaN 数量超过此数量的间隙,则只会部分填充。如果未指定 method,则这是沿整个轴填充 NaN 的最大条目数。如果不是 None,则必须大于 0。 自 2.1 版本起已弃用。 fill_axis {0 或 'index'} 对于 Series,{0 或 'index', 1 或 'columns'} 对于 DataFrame,默认 0填充轴、方法和限制。 自 2.1 版本起已弃用。 Broadcast_axis {0 或 'index'} 对于 Series,{0 或 'index', 1 或 'columns'} 对于 DataFrame,默认 None如果对齐两个不同尺寸的对象,则沿该轴广播值。 自 2.1 版本起已弃用。 返回: 元组(系列/数据帧,其他类型)对齐的对象。 例子 >>> 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