pandas.DataFrame.align#

DataFrame.align(other, join='outer', axis=None, level=None, copy=<no_default>, fill_value=None)[源代码]#

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

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

参数:
otherDataFrame 或 Series

要对齐的对象。

join{{‘outer’, ‘inner’, ‘left’, ‘right’}}, 默认为 ‘outer’

要执行的对齐类型。

  • left: 只使用左侧帧中的键,保留键的顺序。

  • right: 只使用右侧帧中的键,保留键的顺序。

  • outer: 使用两个帧的键的并集,按字典顺序对键进行排序。

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

axis另一个对象的允许轴,默认为 None

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

levelint 或级别名称,默认为 None

跨级别广播,匹配传递的 MultiIndex 级别的 Index 值。

copybool,默认值 False

此关键字已被忽略;更改其值将不会影响方法。

已弃用,版本 3.0.0: 此关键字已被忽略,并将在 pandas 4.0 中删除。自 pandas 3.0 起,此方法始终返回一个新对象,并使用延迟复制机制,该机制会推迟复制直到必要时(写时复制)。有关更多详细信息,请参阅关于写时复制的用户指南

fill_value标量,默认为 np.nan

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

返回:
元组 (Series/DataFrame, 另一个对象的类型)

对齐的对象。

另请参阅

Series.align

使用指定的连接方法在轴上对齐两个对象。

DataFrame.align

使用指定的连接方法在轴上对齐两个对象。

示例

>>> 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