Pandas Series 中的 align() 方法有什么作用?


Pandas Series 的 align 方法用于根据相同的行和/或列配置来对齐两个 Pandas Series 对象,这可以通过指定 join、axis 等参数来实现。

Pandas Series 的 align 方法不会合并两个 Series 对象,而是按照特定顺序对其进行对齐。此方法接受 10 个参数,分别是 **“other, join='outer', axis=None, level=None, copy=True, fill_value=None, method=None, limit=None, fill_axis=0, broadcast_axis=None”**。其中,other、join 和 axis 参数非常重要。输出 Series 对象的对齐方式取决于这些参数。

示例 1

import pandas as pd
s1 = pd.Series([8,4,2,1], index=[5,3,4,2])
s2 = pd.Series([15,12,10,11],index=[1,2,4,5])
print(s1)
print(s2)
a,b = s1.align(s2)
print("Output for align method")
print(a)
print(b)

解释

s1 和 s2 是两个 Pandas Series 对象,索引标签分别为 [1,2,4,5] 和 [2,3,4,5]。我们在这两个 Series 对象上应用了 align 方法,没有任何参数,我们得到了另外两个 Series 对象作为此 align 方法的输出。

输出

5    8
3    4
4    2
2    1
dtype: int64
1    15
2    12
4    10
5    11
dtype: int64

Output of align method without any parameter.

1    NaN
2    1.0
3    4.0
4    2.0
5    8.0
dtype: float64
1    15.0
2    12.0
3    NaN
4    10.0
5    11.0
dtype: float64

以上四个 Series 对象是 s1、s2、a 和 b。上面两个对象是 s1 和 s2,下面两个是由 Pandas Series align 方法使用默认参数生成的。

s1 中的索引标签已重新排列,以便与 s2 中的索引对齐。

已向 s1 添加了标记为“1”的索引,并向 s2 添加了标记为“3”的索引。这些值已填充为 NaN。这是因为默认的 join 参数是对索引标签的外连接。

示例 2

import pandas as pd
s1 = pd.Series([8,4,2,1], index=[5,3,4,2])
s2 = pd.Series([15,12,10,11],index=[1,2,4,5])
print(s1)
print(s2)
a,b = s1.align(s2, join='right')
print("Output of align method with join parameter.")
print(a)
print(b)

解释

现在,我们已将 join 参数与“right”选项一起应用于上述相同的示例。请观察下面输出块中的差异。

输出

5    8
3    4
4    2
2    1
dtype: int64
1    15
2    12
4    10
5    11
dtype: int64

Output of align method with join parameter.

1    NaN
2    1.0
4    2.0
5    8.0
dtype: float64
1    15
2    12
4    10
5    11
dtype: int64

只保留在“right”Series 对象 (s2) 中找到的行。索引标签“3”不再存在。这是因为我们在 Series 对象上进行了右连接。

更新于:2022年3月9日

2K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告