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